- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在尝试将 inRange 函数应用于我的图像。在没有 InRange 的情况下,到 HSV 的转换工作正常,但是当我尝试应用它时,我可以获得我想要的颜色(在本例中为紫色)。我收到错误。
我正在使用OpenCV 4.0.3
Mat plate_img = imread(imagePath, IMREAD_COLOR);
Mat plate_gradient = new Mat();
GaussianBlur(plate_img, plate_img,new Size(7,7),0);
Mat boosted_plate_gradient = new Mat(plate_img.rows(), plate_img.cols(), CvType.CV_8U, new Scalar(3));
morphologyEx(plate_img, plate_gradient, MORPH_GRADIENT, new Mat());
plate_gradient.convertTo(plate_gradient, -1, 9.5, -70);
cvtColor(plate_gradient,plate_gradient, COLOR_BGR2HSV);
Scalar low = new Scalar(151,48.6,85.5);
Scalar high = new Scalar(150,100,50.2);
Core.inRange(plate_gradient, low, high, boosted_plate_gradient);
E/cv::error(): OpenCV(4.0.1) Error: Unspecified error (> Invalid number of channels in input image:
> 'VScn::contains(scn)'
> where
> 'scn' is 1
) in cv::CvtHelper<VScn, VDcn, VDepth, sizePolicy>::CvtHelper(cv::InputArray, cv::OutputArray, int) [with VScn = cv::Set<3, 4>; VDcn = cv::Set<1>; VDepth = cv::Set<0, 2, 5>; cv::SizePolicy sizePolicy = (cv::SizePolicy)2u; cv::InputArray = const cv::_InputArray&; cv::OutputArray = const cv::_OutputArray&], file ...\opencv\sources\modules\imgproc\src\color.hpp, line 259
E/org.opencv.imgproc: imgproc::cvtColor_11() caught cv::Exception: OpenCV(4.0.1) ...\opencv\sources\modules\imgproc\src\color.hpp:259: error: (-2:Unspecified error) in function 'cv::CvtHelper<VScn, VDcn, VDepth, sizePolicy>::CvtHelper(cv::InputArray, cv::OutputArray, int) [with VScn = cv::Set<3, 4>; VDcn = cv::Set<1>; VDepth = cv::Set<0, 2, 5>; cv::SizePolicy sizePolicy = (cv::SizePolicy)2u; cv::InputArray = const cv::_InputArray&; cv::OutputArray = const cv::_OutputArray&]'
> Invalid number of channels in input image:
> 'VScn::contains(scn)'
> where
> 'scn' is 1
最佳答案
显然,我的另一个cvtcolor(在BGR2HSV之后)是在我尝试从BGR2GRAY转换它时抛出错误的,尽管当我没有实现inRange函数时它确实起作用
关于java - 我在与输入颜色 channel 相关的 inRange 函数上遇到错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61299557/
我正在使用Opencv 3.0来仅获取图像中的彩色对象。因此,我创建并使用蒙版。 #include using namespace cv; using namespace std; int main
我似乎无法将结构上的成员值插入到 inRange 函数中。程序可以编译,但阈值并未按预期工作。如果我插入一个不是来自结构的值,它会很好地工作。 struct objects{ int iLowH
我在 Android 上使用 OpenCV 实时查找特定颜色的圆圈。我的第一步是只保留与我正在寻找的定义颜色相对应的像素(在本例中为红色或绿色)。 Example Image. 为此,我使用方法inR
如果这里遇到一个很奇怪的问题。我正在使用 Visual Studio 10 和 OpenCV 进行开发在下面的代码段中,我正在创建一个 1 channel 垫并写入两个不同的垫。第一个窗口“test1
我正在使用 java opencv,这是我正在执行的行。 Imgproc.cvtColor(originalImage, hsvImage, Imgproc.COLOR_BGR2HSV); Core.
我尝试运行以下代码: #include #include using namespace cv; int main() { VideoCapture cap; cap.open(0);
关于以下 cv2.inRange(...) 调用: mask = cv2.inRange(quantized_img, color, color) 'quantized_img' 和 'color'
我正在尝试将 cv::InRange() 与 HSV 图像一起使用。因为色调值是循环的,所以我需要处理最小/最大值,其中最小色调可能大于最大色调值。到目前为止,我使用以下代码来计算范围掩码: cv::
我正在使用 OpenCV 和 Eclipse。 我需要检测人体皮肤,所以我将图像转换为 HSV,然后使用 inRange 函数获取带有白色皮肤图像的 Mat。 问题是现在,我需要检测哪些组件是白色来修
img = cv2.imread('/home/user/Documents/workspace/ImageProcessing/img.JPG'); image = cv2.cvtColor(img
我可以使用下面的代码在框架内找到任何蓝色的东西: How To Detect Red Color In OpenCV Python? 但是我想修改代码以在我拥有的视频中查找非常特定的颜色。我从视频文件
Core.inRange(frame, new Scalar(minA,minB,minC), new Scalar(maxA,maxB,maxC), dst); 我不明白我应该向 Scalar 输入
我有我的图像mRgba,当我这样做时: Core.inRange(mRgba, B1, B2, mRgba); 我得到了预期的结果:我所有的 RGBA 图像都在 B1 和 B2 之间设置了阈值。 现在
我在转换图像以进行颜色识别时遇到了一些问题。 函数如下所示: void PaintHSVWindow(cv::Mat img){ cv::Mat HSV, threshold; cvtColor(im
我一直在尝试将 inRange 函数应用于我的图像。在没有 InRange 的情况下,到 HSV 的转换工作正常,但是当我尝试应用它时,我可以获得我想要的颜色(在本例中为紫色)。我收到错误。 我正在使
我熟悉 OpenCV 的 inRange 函数来创建掩码。假设我想获得某种颜色“周围”的颜色范围内的像素蒙版,我可以这样做: color = np.array([240, 60, 70]) max_d
我正在尝试检测对象中的白色形状,并且可以成功检测 1 个视频。 // Create and display a new matrix for triangles triangles = src.clo
我无法摆脱 OpenCV 中的这个错误: OpenCV Error: Sizes of input arguments do not match (The operation is neither '
如何更改此方法以充当 NotInRange?它应该只返回谓词与提供的 values 不匹配的项。 更新 方法名称, InRange,有点误导,应该是 WhereInRange (或类似名称) ,因为它
我正在用 OpenCV 编写一个 C++ 程序来检测月球陨石坑,它似乎只能准确检测到一小部分陨石坑。我对这种方法的策略是首先将图像转换为 HSV,然后使用 inRange() 捕捉值范围内的颜色以产生
我是一名优秀的程序员,十分优秀!