如何计算roi opencv中的像素数

如何计算roi opencv中的像素数,opencv,pixels,image-size,roi,Opencv,Pixels,Image Size,Roi,我有一个硬币的裁剪图像。我已经用了面具,所以我可以专注于硬币本身。接下来,我想数一数这枚硬币的像素数。我已经读过类似的帖子,但我觉得它们似乎不适合我 以下是原始图像: 还有被裁剪的硬币: 以下是我目前的代码: //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.

我有一个硬币的裁剪图像。我已经用了面具,所以我可以专注于硬币本身。接下来,我想数一数这枚硬币的像素数。我已经读过类似的帖子,但我觉得它们似乎不适合我

以下是原始图像:

还有被裁剪的硬币:

以下是我目前的代码:

//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;
如何计算裁剪硬币的像素数

您需要使用

非零计数

计数非零数组元素

C++:int countNonZero(InputArray src)

在ROI矩阵上使用此选项,它将返回像素数的整数,在您的代码中,它将如下所示:

numberOfPixelsInMask = cv::countNonZero(mask);
你需要使用

非零计数

计数非零数组元素

C++:int countNonZero(InputArray src)

在ROI矩阵上使用此选项,它将返回像素数的整数,在您的代码中,它将如下所示:

numberOfPixelsInMask = cv::countNonZero(mask);
你需要使用

非零计数

计数非零数组元素

C++:int countNonZero(InputArray src)

在ROI矩阵上使用此选项,它将返回像素数的整数,在您的代码中,它将如下所示:

numberOfPixelsInMask = cv::countNonZero(mask);
你需要使用

非零计数

计数非零数组元素

C++:int countNonZero(InputArray src)

在ROI矩阵上使用此选项,它将返回像素数的整数,在您的代码中,它将如下所示:

numberOfPixelsInMask = cv::countNonZero(mask);

记住把你目前掌握的密码贴出来这是我目前掌握的<代码>//获取硬币的像素数//步骤1:裁剪硬币//获取包含圆的矩形矩形矩形圆(center.x-radius,center.y-radius,radius*2,radius*2);//获取图像ROI:Mat ROI(src_gray,矩形);//制作一个黑色遮罩,大小相同:Mat mask(roi.size(),roi.type(),Scalar::all(0));//带有白色填充圆:圆(遮罩、点(半径、半径)、半径、标量::全部(255),-1);//结合roi和掩码:cv::Mat coin\u cropped=roi和掩码;在面具上使用cv::countNonZerofunction@Micka,在何处插入cv::countNonZero?非常感谢你。我真是个笨蛋。记得把你的密码发出去。这是我到目前为止的<代码>//获取硬币的像素数//步骤1:裁剪硬币//获取包含圆的矩形矩形矩形圆(center.x-radius,center.y-radius,radius*2,radius*2);//获取图像ROI:Mat ROI(src_gray,矩形);//制作一个黑色遮罩,大小相同:Mat mask(roi.size(),roi.type(),Scalar::all(0));//带有白色填充圆:圆(遮罩、点(半径、半径)、半径、标量::全部(255),-1);//结合roi和掩码:cv::Mat coin\u cropped=roi和掩码;在面具上使用cv::countNonZerofunction@Micka,在何处插入cv::countNonZero?非常感谢你。我真是个笨蛋。记得把你的密码发出去。这是我到目前为止的<代码>//获取硬币的像素数//步骤1:裁剪硬币//获取包含圆的矩形矩形矩形圆(center.x-radius,center.y-radius,radius*2,radius*2);//获取图像ROI:Mat ROI(src_gray,矩形);//制作一个黑色遮罩,大小相同:Mat mask(roi.size(),roi.type(),Scalar::all(0));//带有白色填充圆:圆(遮罩、点(半径、半径)、半径、标量::全部(255),-1);//结合roi和掩码:cv::Mat coin\u cropped=roi和掩码;在面具上使用cv::countNonZerofunction@Micka,在何处插入cv::countNonZero?非常感谢你。我真是个笨蛋。记得把你的密码发出去。这是我到目前为止的<代码>//获取硬币的像素数//步骤1:裁剪硬币//获取包含圆的矩形矩形矩形圆(center.x-radius,center.y-radius,radius*2,radius*2);//获取图像ROI:Mat ROI(src_gray,矩形);//制作一个黑色遮罩,大小相同:Mat mask(roi.size(),roi.type(),Scalar::all(0));//带有白色填充圆:圆(遮罩、点(半径、半径)、半径、标量::全部(255),-1);//结合roi和掩码:cv::Mat coin\u cropped=roi和掩码;在面具上使用cv::countNonZerofunction@Micka,在何处插入cv::countNonZero?非常感谢你。我真是个笨蛋。