opencv修改图片像素值
时间: 2024-09-25 15:12:49 浏览: 50
要修改OpenCV中图像的像素值,可以通过以下步骤实现:
1. 读入图像:使用cv::imread函数读入需要修改像素值的图片;
2. 访问像素值:使用Mat::at函数访问图像中的像素值,如:mat.at<Vec3b>(row, col)。其中,Vec3b是一个包含3个无符号字节(uchar)的向量,分别表示蓝色、绿色和红色通道的像素值;
3. 修改像素值:修改Vec3b向量中的元素值即可。
以下是一个示例代码,将一张图片中所有像素值都变为其反色:
```
cv::Mat image = cv::imread("example.jpg");
if (image.empty()) {
std::cerr << "Failed to read image." << std::endl;
return -1;
}
for (int row = 0; row < image.rows; ++row) {
for (int col = 0; col < image.cols; ++col) {
cv::Vec3b& pixel = image.at<cv::Vec3b>(row, col);
pixel = 255 - pixel; // 反色处理:蓝色通道
pixel = 255 - pixel; // 反色处理:绿色通道
pixel = 255 - pixel; // 反色处理:红色通道
}
}
cv::imshow("Modified Image", image);
cv::waitKey(0);
```
阅读全文