c++,改变从opencv读取的图像中某个像素点的值
时间: 2024-04-17 12:26:05 浏览: 101
opencv中获取图片的某一像素值
4星 · 用户满意度95%
要在C++中改变从OpenCV读取的图像中某个像素点的值,您可以使用以下代码:
```cpp
#include <opencv2/opencv.hpp>
int main() {
// 读取图像
cv::Mat image = cv::imread("image.jpg", cv::IMREAD_COLOR);
// 修改像素点值
int row = 100; // 像素点的行坐标
int col = 200; // 像素点的列坐标
// 修改像素点为蓝色(BGR格式)
image.at<cv::Vec3b>(row, col) = cv::Vec3b(255, 0, 0);
// 保存修改后的图像
cv::imwrite("modified_image.jpg", image);
return 0;
}
```
在上面的代码中,我们使用`cv::imread`函数读取图像,并将其存储在`cv::Mat`对象中。然后,通过使用`at<cv::Vec3b>(row, col)`来访问特定像素点。在这个例子中,我们将特定像素点的值修改为蓝色,即BGR格式中的(255, 0, 0)。最后,我们使用`cv::imwrite`函数保存修改后的图像。
请注意,上述代码假设图像是彩色图像(BGR格式)。如果您读取的是灰度图像,则需要使用`cv::Mat`对象的单通道版本(如`cv::Mat_<uchar>`)和对应的访问方法(如`image.at<uchar>(row, col)`)。
阅读全文