1. 程式人生 > >opencv畫素操作

opencv畫素操作

1–bit_depth—位元數—代表8bite,16bites,32bites,64bites—舉個例子吧–比如說,如
如果你現在建立了一個儲存–灰度圖片的Mat物件,這個影象的大小為寬100,高100,那麼,現在這張
灰度圖片中有10000個畫素點,它每一個畫素點在記憶體空間所佔的空間大小是8bite,8位–所以它對
應的就是CV_8
2–S|U|F–S–代表—signed int—有符號整形
U–代表–unsigned int–無符號整形
F–代表–float———單精度浮點型
3–C—-代表—一張圖片的通道數,比如:
1–灰度圖片–grayImg—是–單通道影象
2–RGB彩色影象———是–3通道影象
3–帶Alph通道的RGB影象–是–4通道影象

如果使用的是uchar則使用Vec3b
如果使用的是float則使用Vec3f

float d = matDepthImage.at(row, col);

p.r = matRGBImage.ptr(row)[col * 3];
p.g = matRGBImage.ptr(row)[col * 3 + 1];
p.b = matRGBImage.ptr(row)[col * 3 + 2];

cv::Mat image = cv::imread(“Q:\test.jpg”, CV_LOAD_IMAGE_COLOR);
for(int k = 0; k < 1000; k++)
{
int i = rand() % image.cols;
int j = rand() % image.rows;
image.at(i, j)[0] = 255;
image.at(i, j)[1] = 255;
image.at(i, j)[2] = 255;
}

cv::Mat_ ima = image;
cv::namedWindow(“Origin image”, cv::WINDOW_NORMAL);
cv::imshow(“Origin image”, image);

for(int k = 0; k < 1000; k++)
{
int i = rand() % ima.cols;
int j = rand() % ima.rows;
ima(i, j)[0] = 255;
ima(i, j)[1] = 255;
ima(i, j)[2] = 255;
}