Jac*_*lch 2 opencv computer-vision
我目前正在使用 openCv 做一些计算机视觉。我有一个瓶子样品,上面有标签。我试图确定什么时候瓶子上没有标签。标签为长方形。
我已经使用 Canny 进行了边缘检测。我尝试使用 findcountour() 来检测瓶子是否具有内部轮廓(这将代表矩形标签)。
如果您的问题如此简单,只需使用矩形放置缩小图像即可。
cv::Mat image = imread("image.png");
cv::Rect labelRegion(50, 200, 50, 50);
cv::Mat labelImage = image(labelRegion);
Run Code Online (Sandbox Code Playgroud)
然后将您的图像区域分解为三个通道。
cv::Mat channels[3];
cv::split(labelImage, channels);
cv::Mat labelImageRed = channels[2];
cv::Mat labelImageGreen = channels[1];
cv::Mat labelImageBlue = channels[0];
Run Code Online (Sandbox Code Playgroud)
然后对这些一个通道图像中的每一个进行阈值处理,并计算零/非零像素的数量。
I'm not providing code for this part!
Run Code Online (Sandbox Code Playgroud)
如果图像上没有标签,则每个通道的值都大于 ~200(您应该检查一下)。如果有标签,那么从未标记的像素中计算零/非零像素时,您将看到不同的结果。
归档时间: |
|
查看次数: |
2429 次 |
最近记录: |