0
我想修改图像的每个像素。但结果并不像我预料的那样。OpenCV修改图像像素
原图:
结果:
For循环修改每一个像素:
image = imread("image.png", CV_LOAD_IMAGE_COLOR)
unsigned char value;
for (int col = 0; col < image.cols; col++){
for (int row = 0; row < image.rows; row++){
value = image.at<unsigned char>(row,col);
value *= 0;
image.at<unsigned char>(row, col) = value;
}
}
所以我不知道在哪里的错误是,我想问你我如果你知道答案。
由于对所有像素都进行了相同的操作,我更喜欢矩阵表达式 - 更快更简洁。 |考虑到OP乘以0,一个简单的'setTo'或甚至只是一个标量分配就可以做到。 –
@DanMašek是的,还有很多其他的方式(例如矩阵乘法,位运算,parallel_for等)来执行这个操作。但是,由于OP似乎是简历初学者,并且对访问每个像素感兴趣,因此我给出了相应的答案。 – zindarod