#c #opencv #aforge
#c #opencv #aforge
Вопрос:
Я разрабатываю проект на C , который требует вычисления вертикальной гистограммы интенсивности данного изображения. Входное изображение, которое у меня есть, и результат, который я хочу получить, похожи на это:
Я не знаю, какая функция OpenCV лучше всего подходит для получения нужного мне результата. Я пробовал с calcHist
function и reduce
функцией, но оба они, похоже, не работают из-за моей ошибки при передаче аргументов.
Учитывая, что у меня есть хорошее черно-белое изображение, может кто-нибудь помочь мне рассчитать гистограмму?
Спасибо
Ответ №1:
для этого в opencv есть встроенная функция: уменьшить
(calcHist не будет работать, потому что он определяет интенсивности, а не количество проецируемых пикселей)
reduce(img,0,CV_REDUCE_SUM); // horizontal
reduce(img,1,CV_REDUCE_SUM); // vertical
(хехе, изображения из code-proj. статья ? помните, что один …)
Комментарии:
1. Хорошо, это сработало. Большое вам спасибо, Берак. Да, это хорошая статья :). Чтобы получить и использовать гистограмму, которую я определил: MatND hist_y; уменьшить(img, hist_y, 1, CV_REDUCE_SUM, CV_32FC1);
2. вам не нужен MatND, подойдет обычный Mat (на самом деле они одинаковые)