그레이 스케일 이미지가 있다고 가정 해 보겠습니다. 흑인이 아닌 픽셀이 어떻게 분산되는지, 즉 하나 또는 여러 위치에서 그룹화되는지 또는 전체 이미지에서 균일하게 분포되는지를 계산하는 방법이 있습니까?OpenCV에서 이미지의 색상 분포 계산
0
A
답변
0
이미지의 히스토그램을 찾고있는 것처럼 들립니다. 이것은 이미지 프로세싱의 기본 작동입니다. 당신이 인을 찾고있는 것처럼
"히스토그램은 미리 정의 된 빈 세트로 구성 데이터의 수를 수집하고 있습니다.는"
을 OpenCV를 사용하여 히스토그램 계산의 문서 this link
0
에 소리가 난다 이미지의 래스터 화 된 버전의 공간 순간. 당신은 당신이 할 수있는 공간적 순간의 물리적 비유하고 싶은 경우 http://docs.opencv.org/2.4/modules/imgproc/doc/structural_analysis_and_shape_descriptors.html?highlight=moments#moments
그런 다음 이미지 순간을 계산할 수 있습니다
먼저 당신은 바이너리하기 위해 임계 값에 이미지가 필요 각각의 흰색 픽셀이 단위 점 질량이라고 상상하면, 두 번째 모멘트는 이미지의 회전 관성이됩니다. 흰색 픽셀 (점 질량)이 단단히 밀집되면 두 번째 모멘트가 낮아집니다 (이미지가 쉽게 회전합니다).
0
다른 접근 방식을 사용하고 싶습니다.
Mat img = imread(argv[1], CV_LOAD_IMAGE_COLOR);
cvtColor(img, img, CV_RGB2GRAY);
threshold(img, img, 35, 255, THRESH_BINARY);
Mat distance;
distanceTransform(img, distance, CV_DIST_L2, 3);
distance = min(distance, 1);
Scalar distribution = mean(dist);
cout << "The distribution is: " << distribution << std::endl;
까다로운 부분 distanceTransformmin과 기능의 조합이다. min 함수의 효과는 분포가 좋은 이미지에서 더 작아지며 평균값은 더 커집니다.