C#: 将mat图像某一区域置0

1、将mat图像某一区域置0

  • 在OpenCVSharp中,将图像某一区域置零可以通过定义一个ROI(Region of Interest)并将其设置为全零来实现。
    以下是一个简单的例子,展示了如何将图像中的一个矩形区域内的像素值置为0:

2、方法

  • 我们首先定义了一个矩形区域的ROI,然后使用Cv2.Rectangle函数将该区域内的所有像素值设置为0。
    -1参数表示填充区域,
    Scalar.All(0)定义了颜色为黑色(所有通道值为0)。
    最后,我们保存或显示处理后的图像,并在不需要时释放资源。

3、程序

using OpenCvSharp;
 
class Program
{
    static void Main(string[] args)
    {
        // 加载图像
        Mat img = Cv2.ImRead("path_to_your_image.jpg");
 
        // 定义ROI区域(这里以矩形为例)
        Rect rect = new Rect(50, 50, 100, 100); // 左上角点(x, y)以及宽度和高度
 
        // 将ROI区域置0
        Mat roi = img.SubMat(rect);
        Cv2.Rectangle(roi, new OpenCvSharp.Point(0, 0), new OpenCvSharp.Point(roi.Width, roi.Height), Scalar.All(0), -1);
 
        // 保存或显示结果
        Cv2.ImWrite("result.jpg", img);
        Cv2.ImShow("Result", img);
        Cv2.WaitKey(0);
 
        // 释放资源
        img.Dispose();
    }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容