c# OpenCV 读取、显示和写入图像(二)

读取、显示和写入图像是图像处理和计算机视觉的基础。即使在裁剪、调整大小、旋转或应用不同的滤镜来处理图像时,您也需要先读取图像。因此,掌握这些基本操作非常重要。

  1. imread()读取图像
  2. imshow()在窗口中显示图像
  3. imwrite()将图像保存到文件目录里

我们将使用下图来演示此处的所有功能。

一、imread()读取图像

cv.imread(filename, flags)

ImreadModes.Color:始终将图像转换为 3 通道BGR彩色图像,默认方式

ImreadModes.Grayscale:始终将图像转换为单通道灰度图像

ImreadModes.Unchanged:按原样返回加载的图像(使用Alpha通道)

ImreadModes.AnyDepth:在输入具有相应深度时返回16位/ 32位图像,否则将其转换为8位

ImreadModes.AnyColor:以任何可能的颜色格式读取图像

cs 复制代码
Mat img1 = new Mat("1.jpg", ImreadModes.Color);
Cv2.ImShow("Color", img1);
Mat img2 = new Mat("1.jpg", ImreadModes.Grayscale);
Cv2.ImShow("Grayscale", img2);
Mat img3 = new Mat("1.jpg", ImreadModes.Unchanged);
Cv2.ImShow("Unchanged", img3);
Mat img4 = new Mat("1.jpg", ImreadModes.AnyColor);
Cv2.ImShow("AnyColor", img4);

二、imshow()在窗口中显示图像

Cv2.waitKey()是OpenCV中的一个函数,它会在窗口上等待指定的毫秒数,如果期间没有按下任何键,则返回-1。如果按下了任何键,则返回按键的ASCII码值。该函数通常与cv2.imshow()一起使用,以便在窗口中显示图像并等待用户按下键盘。

cs 复制代码
img = cv2.imread('image.jpg')
cv2.imshow('image', img)
k = cv2.waitKey(0) & 0xFF # 等待按键按下
if k == 27: # 如果按下ESC键
    cv2.destroyAllWindows() # 关闭所有窗口
elif k == ord('s'): # 如果按下's'键
    cv2.imwrite('image_copy.jpg', img) # 保存图像
    cv2.destroyAllWindows() # 关闭所有窗口

在上面的例子中,cv2.waitKey(0)会一直等待,直到用户按下任意键。如果用户按下ESC键,则所有窗口都将关闭。如果用户按下's'键,则图像将被保存为'image_copy.jpg'并关闭所有窗口。

三、ImWrite()将图像写入文件目录

imwrite(filename, image).

  1. 第一个参数是文件名,它必须包含文件扩展名(例如 .png、.jpg 等)。OpenCV 使用此文件扩展名来指定文件的格式。
  2. 第二个参数是要保存的图像。如果图像保存成功,该函数将返回。True
cs 复制代码
Mat src = Cv2.ImRead("lenna.png", ImreadModes.AnyColor);
Mat output_image = new Mat();
Cv2.CvtColor(src, output_image, ColorConversionCodes.BGR2GRAY);
Cv2.ImWrite("output_image.png", output_image);

四、总结

  • imread() ``imshow() ``imwrite() 图像读取,图像显示,图像保存;
  • waitKey()和功能,以及显示功能destroyAllWindows()
    • 按键时关闭图像窗口
    • 并从内存中清除任何打开的图像窗口

上一篇c# OpenCV安装(一

相关推荐
_李小白7 小时前
【android opencv学习笔记】Day 32:直线检测之霍夫变换
android·opencv·学习
leo__5207 小时前
C# 虚拟键盘(软键盘)实现
单片机·c#·计算机外设
周杰伦fans8 小时前
AutoCAD C# 二次开发:如何精确监听工作空间切换事件
前端·c#
用户3721574261359 小时前
如何使用 C# 自动调整 Excel 行高和列宽
c#
AI导出鸭PC端9 小时前
智谱清言怎么生成word文档?AI导出鸭终结乱码烦恼
人工智能·ai·c#·word·豆包·ai导出鸭
xiaoshuaishuai811 小时前
C# AvaloniaUI 中旋转
开发语言·c#
weixin_4280053011 小时前
C#调用 AI学习从0开始-第2阶段(Function Calling+工具调用智能体)-第9天实战-实现计算器工具
开发语言·学习·c#·functioncalling·ai实现计算器工具
guygg8811 小时前
基于C# + Halcon的通用ROI绘制工具
stm32·单片机·c#
程序员正茂12 小时前
EasyAR使用OpenCV下USB摄像头作为自定义相机
opencv·unity·easyar
_李小白12 小时前
【android opencv学习笔记】Day 31:提取轮廓之Canny算法
android·opencv·学习