OpenCVSharp学习笔记(二)显示窗口和加载图片保存图片

这篇博客介绍了如何使用C#的OpenCV库创建窗口并加载图片。通过`Cv2.NamedWindow`创建窗口,`Cv2.ImRead`读取图像文件,然后用`Cv2.ImShow`展示图片。窗口状态可以设置为`Normal`或`AutoSize`,前者允许用户调整大小,后者则根据图片自动调整。`Cv2.ResizeWindow`可以改变窗口尺寸,`Cv2.WaitKey(0)`确保窗口保持打开状态,最后`Cv2.DestroyAllWindows()`销毁所有窗口。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

显示窗口和加载图片

创建和显示窗口,因为比较简单我就直接上代码了

//创建窗口
Cv2.NamedWindow("new", WindowFlags.Normal);
//加载图片
Mat img = Cv2.ImRead(@"E:/1.jpeg");
//展示窗口
Cv2.ImShow("new", img);
//等待输入时间
Cv2.WaitKey(0);
//销毁窗口资源
Cv2.DestroyAllWindows();
创建窗口
Cv2.NamedWindow("new", WindowFlags.Normal);

第一个参数为窗口名称,第二个参数为窗口状态,窗口状态里面的内容很多,可以点进去看每种状态的作用,我这里只说两种常用的

WindowFlags.Normal

该状态下用户可以调整窗口大小,随意拖动

WindowFlags.AutoSize

该状态下用户不能调整窗口大小,受图片大小影响
我也把所有状态贴出来供大家参考

    //
    // 摘要:
    //     Flags for cv::namedWindow
    [Flags]
    public enum WindowFlags
    {
        //
        // 摘要:
        //     the user can resize the window (no constraint) / also use to switch a fullscreen
        //     window to a normal size
        Normal = 0,
        //
        // 摘要:
        //     the ratio of the image is respected
        KeepRatio = 0,
        //
        // 摘要:
        //     status bar and tool bar
        GuiExpanded = 0,
        //
        // 摘要:
        //     the user cannot resize the window, the size is constrainted by the image displayed.
        AutoSize = 1,
        //
        // 摘要:
        //     change the window to fullscreen
        FullScreen = 1,
        //
        // 摘要:
        //     old fashious way
        GuiNormal = 16,
        //
        // 摘要:
        //     the image expends as much as it can (no ratio constraint)
        FreeRatio = 256,
        //
        // 摘要:
        //     window with opengl support
        OpenGL = 4096
    }
加载图片
Mat img = Cv2.ImRead(@"E:/1.jpeg");

后面的参数为图片路径

展示窗口
 Cv2.ImShow("new", img);

第一个参数为窗口名称,后面为Mat类,也就是前面加载的图片类
该方法如果第一个参数指定的窗口名称不存在,则会自动进行创建后显示。

修改窗口大小

如果我们需要修改窗口的大小,可以使用

Cv2.ResizeWindow("new", 640,480);

第一个参数为窗口名称,后面为宽度和高度

Cv2.WaitKey(0);为设置窗口的等待时间,0为不限制时间,如果不添加该参数会发现窗口会闪退
Cv2.DestroyAllWindows();用于销毁窗口资源

运行结果

在这里插入图片描述

保存图片

保存图片的方法很简单这里我就不多做说明了

      Mat img = Cv2.ImRead(@"E:/1.jpeg");
      Cv2.ImWrite(@"E:/1.png",img);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

code-Study

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值