2012-02-01 3 views
2

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

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

Как можно получить доступ к значению пикселя него?

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

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

Спасибо заранее.

ответ

4

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

src.at<unsigned char>(i, j) 
Смежные вопросы