OpenCV 이진 이미지의 모든 흰색 픽셀 수를 계산하려고합니다.OpenCV 이진 이미지의 '흰색'픽셀 수 (효율적으로)
whitePixels = 0;
for (int i = 0; i < height; ++i)
for (int j = 0; j < width; ++j)
if (binary.at<int>(i, j) != 0)
++whitePixels;
을하지만, 나는이 코드의 매우 느린 조각, 프로그램에 큰 병목 것으로 나타났습니다 gprof의 프로파일 링 한 후 다음과 같이 내 현재 코드입니다.
동일한 값을 더 빨리 계산할 수있는 방법이 있습니까?
높이와 너비를 변경해 보셨습니까? 너비와 높이를 반복하는거야? 이것은 이미지가 메모리에 어떻게 레이아웃되어 있는지에 따라 루프를 향상시킬 수 있습니다. –
이 at() 함수 대신 직접 이미지 데이터에 액세스 할 수 있습니까? – jrok
jrok 제안을하는 것이 아마 더 빠를 것입니다. 나는 [이 FAQ 항목] (http://opencv.willowgarage.com/wiki/faq#How_to_access_image_pixels)이 관련이 있는지 궁금합니다. – Brian