如何在ROI开放中计算像素



我有一个硬币的裁剪图像。我已经用了遮罩,这样我就可以专注于硬币本身了。接下来我要计算这枚硬币的像素数。我已经读过类似的帖子,但它们似乎对我不起作用。

是原始图像:http://s30.postimg.org/eeh3lp99d/IMG_20150414_121300.jpg

和裁剪后的硬币:http://s3.postimg.org/4k2pdst73/cropped.png

下面是目前为止的代码:
//get the number of pixels of the coin 
//STEP 1: CROP THE COIN 
//get the Rect containing he circl 
Rect rectCircle(center.x - radius, center.y - radius, radius * 2, radius * 2); //obtain the image ROI: 
Mat roi(src_gray, rectCircle); 
//make a black mask, same size: 
Mat mask(roi.size(), roi.type(), Scalar::all(0)); 
//with a white,filled circle in it: 
circle(mask, Point(radius, radius), radius, Scalar::all(255), -1); 
//combine roi and mask: 
cv::Mat coin_cropped = roi & mask;

我如何计算像素的数量裁剪硬币?

你需要使用countnonzero

countNonZero

计数非零数组元素。

c++: int countNonZero(InputArray src)

在ROI矩阵上使用它,它将返回像素数的整数,在你的代码中它看起来像这样:

numberOfPixelsInMask = cv::countNonZero(mask);

相关内容

  • 没有找到相关文章

最新更新