相当于OpenCV C++接口中的cvAvg

Mat*_*teo 1 c++ opencv

我在这两个链接中遇到了同样的问题:,.我需要计算图像中小ROI的像素强度平均值.

我选择了ROI并将图像复制到其中,所以现在我需要计算像素平均强度,避免所有像素上的循环.

链接中提供的答案建议使用,CvScalar c = cvAvg(img);但我无法使用C++接口找到等效的.

你能指点一下吗?我在文档中找不到它!

Mat*_*teo 15

我提供了解决问题的代码段:

//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;
Run Code Online (Sandbox Code Playgroud)


Abi*_*n K 7

使用mean functionC++的.

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
Run Code Online (Sandbox Code Playgroud)