c++ , opencv, 对图片的指定区域置为0或255
时间: 2024-03-11 22:47:48 浏览: 359
opencv c++ 图像处理
要对图片的指定区域进行置0或255,可以使用OpenCV库中的cv::Mat和cv::Rect来实现。
首先,需要加载图片并创建一个cv::Mat变量来存储图像:
```
cv::Mat image = cv::imread("image.jpg");
```
然后,可以使用cv::Rect来指定要操作的区域:
```
cv::Rect roi(x, y, width, height); // (x, y)为左上角坐标,width和height为区域宽度和高度
```
接着,可以使用cv::Mat的at()方法来访问像素,将指定区域的像素值设置为0或255:
```
for (int i = roi.y; i < roi.y + roi.height; i++) {
for (int j = roi.x; j < roi.x + roi.width; j++) {
image.at<uchar>(i, j) = 0; // 将指定区域的像素值设置为0
//image.at<uchar>(i, j) = 255; // 将指定区域的像素值设置为255
}
}
```
最后,可以将修改后的图像保存:
```
cv::imwrite("modified_image.jpg", image);
```
阅读全文