Я открыл изображение в ImageJ и вывел гистограмму загруженного изображения. С ImageJ я могу получить доступ к списку значений пикселей, соответствующих их вхождению в изображение.
Однако, когда я попытался загрузить изображение в образец прототипа, написанного с использованием OpenCV, чтобы вычислить его гистограмму со списком значений пикселей и их частоты, я получил совершенно другой результат; тем не менее, на графике обеих гистограмм выводится схожая форма распределения.
Гистограмма OpenCV рассчитывается по:
cv::calcHist(
&image,
1,
channels,
cv::Mat(),
hist,
1,
histSize,
ranges
);
и доступны
histo.at<float>(i)
Результаты можно увидеть на снимке ниже:
Верхнее изображение из примера OpenCV, в то время как второе изображение вычисляется с использованием ImageJ
Это потому, что я пытаюсь извлечь значения, аналогичные вычисленным ImageJ с использованием OpenCV в C ++. Благодарю.
ПРИМЕЧАНИЕ: оба имеют одинаковое количество пикселей
Задача ещё не решена.