我在這兩個鏈接中發出了同樣的問題:one,two。我需要計算圖像中的小ROI上的像素強度平均值。等效於OpenVV C++接口中的cvAvg
我選擇了ROI並將圖像複製到其中,所以現在我需要計算像素平均亮度,避免在所有像素上出現循環。
鏈接中提供的答案建議使用CvScalar c = cvAvg(img);
,但我找不到使用C++接口的等效項。
請問你能指出一下嗎?我無法在文檔中找到它!
我在這兩個鏈接中發出了同樣的問題:one,two。我需要計算圖像中的小ROI上的像素強度平均值。等效於OpenVV C++接口中的cvAvg
我選擇了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;
對於C++使用mean function
。
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
對不起,我不知道C++。如果它適合你,那就意味着它有效。我只使用Python,你可以在這裏找到所有的輪廓特徵,包括平均值:http://opencvpython.blogspot.com/2012/04/contour-features.html –
+1:謝謝!很棒。 –