读取、显示和写入图像是图像处理和计算机视觉的基础。即使在裁剪、调整大小、旋转或应用不同的滤镜来处理图像时,您也需要先读取图像。因此,掌握这些基本操作非常重要。
ImreadModes.Color:始终将图像转换为 3 通道BGR彩色图像,默认方式
ImreadModes.Grayscale:始终将图像转换为单通道灰度图像
ImreadModes.Unchanged:按原样返回加载的图像(使用Alpha通道)
ImreadModes.AnyDepth:在输入具有相应深度时返回16位/ 32位图像,否则将其转换为8位
ImreadModes.AnyColor:以任何可能的颜色格式读取图像
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);
Cv2.waitKey()
是OpenCV中的一个函数,它会在窗口上等待指定的毫秒数,如果期间没有按下任何键,则返回-1。如果按下了任何键,则返回按键的ASCII码值。该函数通常与cv2.imshow()
一起使用,以便在窗口中显示图像并等待用户按下键盘。
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’并关闭所有窗口。
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);
四、总结
原文地址:https://blog.csdn.net/hb_ljj/article/details/134768769
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_35976.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!