Как я могу изменить значение пикселя для изображения в градациях серого с помощью Opencv 2.3? - PullRequest
2 голосов
/ 02 февраля 2012

Когда я читаю изображение в градациях серого, используя, например, Opencv 2.3:

Mat src = imread("44.png" ,0);

Как я могу получить его значение в пикселях?

Я знаю, могу ли я использовать его RGB:

std::cout << src.at<cv::Vec3b>(i,j)[0].

Заранее спасибо.

1 Ответ

4 голосов
/ 02 февраля 2012

Поскольку изображение в градациях серого содержит только один компонент вместо 3, полученная матрица / изображение имеет тип CV_8UC1 вместо CV_8UC3. А это, в свою очередь, означает, что отдельные пиксели - это не 3 вектора байтов (cv::Vec3b), а просто отдельные байты (unsigned char или OpenCV uchar). Так что вы можете просто использовать:

src.at<unsigned char>(i, j)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...