我在这两个链接中遇到了同样的问题:一,二。我需要计算图像中小 ROI 的像素强度平均值。
我选择了 ROI 并复制了其中的图像,所以现在我需要计算像素平均强度,避免所有像素出现循环。
链接中提供的答案建议使用CvScalar c = cvAvg(img);
,但我找不到使用 C++ 接口的等价物。
你能指出来吗?我在文档中找不到它!
我提供了解决问题的代码片段:
//defines roi
cv::Rect roi( roiVertexXCoordinate, roiVertexYCoordinate, roiWidth, roiHeight );
//copies input image in roi
cv::Mat image_roi = inputImage( roi );
//computes mean over roi
cv::Scalar avgPixelIntensity = cv::mean( image_roi );
//prints out only .val[0] since image was grayscale
cout << "Pixel intensity over ROI = " << avgPixelIntensity.val[0] << endl;
用于mean function
C++。
http://docs.opencv.org/modules/core/doc/operations_on_arrays.html?highlight=avg#mean
Calculates an average (mean) of array elements.
C++: Scalar mean(InputArray src, InputArray mask=noArray())
Python: cv2.mean(src[, mask]) → retval
C: CvScalar cvAvg(const CvArr* arr,const CvArr* mask=NULL )
Python: cv.Avg(arr, mask=None) → scalar