Объяснение гистограммы между OpenCV и ImageJ

Я открыл изображение в ImageJ и вывел гистограмму загруженного изображения. С ImageJ я могу получить доступ к списку значений пикселей, соответствующих их вхождению в изображение.

Однако, когда я попытался загрузить изображение в образец прототипа, написанного с использованием OpenCV, чтобы вычислить его гистограмму со списком значений пикселей и их частоты, я получил совершенно другой результат; тем не менее, на графике обеих гистограмм выводится схожая форма распределения.

Гистограмма OpenCV рассчитывается по:

cv::calcHist(
&image,
1,
channels,
cv::Mat(),
hist,
1,
histSize,
ranges
);

и доступны

histo.at<float>(i)

Результаты можно увидеть на снимке ниже:

Верхнее изображение из примера OpenCV, в то время как второе изображение вычисляется с использованием ImageJ

OpenCV
ImageJ

Это потому, что я пытаюсь извлечь значения, аналогичные вычисленным ImageJ с использованием OpenCV в C ++. Благодарю.

ПРИМЕЧАНИЕ: оба имеют одинаковое количество пикселей

0

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]