作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在将图像转换为 YCrCb 图像空间后,我试图对 JPEG 图像进行腐 eclipse 。使用以下代码
YCrCbMin.val[0] = 0;
YCrCbMin.val[1] = 131;
YCrCbMin.val[2] = 80;
YCrCbMax.val[0] = 255;
YCrCbMax.val[1] = 185;
YCrCbMax.val[2] = 135;
imshow("img",Img);// Img is the JPEG image I load off the disk.
waitKey(0);
Mat YCrCbImg;
cvtColor(Img, YCrCbImg, CV_BGR2YCrCb);
Mat erodedImg;
inRange(YCrCbImg, YCrCbMin, YCrCbMax, erodedImg);
Mat InterMediateImg = YCrCbImg;
IplConvKernel* element = new IplConvKernel();
element->nCols = 12; element->nRows = 12; element->anchorX = 6; element->anchorY = 6;
cvErode(&erodedImg, &InterMediateImg, element, 1);
element->nCols = 6; element->nRows = 6; element->anchorX = 3; element->anchorY = 3;
cvDilate(&InterMediateImg, &erodedImg, element, 2);
最佳答案
调用 cvErode
时可能会出现该错误。和 cvDilate
.您正在混合 C 和 C++ 接口(interface)。所以,例如,在cvErode(&erodedImg, &InterMediateImg, element, 1);
erodedImg
和 InterMediateImg
属于 cv::Mat
类型当它们应该是 cvMat
类型时. cvDilate
也是如此.
您可以使用新界面:
cv::erode
void erode(const Mat& src, Mat& dst, const Mat& element, Point anchor=Point(-1, -1), int iterations=1, int borderType=BORDER_CONSTANT, const Scalar& borderValue=morphologyDefaultBorderValue())
void dilate(const Mat& src, Mat& dst, const Mat& element, Point anchor=Point(-1, -1), int iterations=1, int borderType=BORDER_CONSTANT, const Scalar& borderValue=morphologyDefaultBorderValue())
cv::Mat
转换至
cvMat
(link to cheatsheet) :
CvMat cvmat = img; // convert cv::Mat -> CvMat
关于opencv - cvErode 错误 - 未知数组类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12500704/
在将图像转换为 YCrCb 图像空间后,我试图对 JPEG 图像进行腐 eclipse 。使用以下代码 YCrCbMin.val[0] = 0; YCrCbMin.val[1] = 131; Y
我是一名优秀的程序员,十分优秀!