opencv_python 读取、显示、存储图片,BGR转换RGB

今天在学习opencv,它是一个对于图片处理的非常强大的库 ,学视觉的应该都要学学。下面是对图片的读取、显示,以及存储 的代码

import cv2
image=cv2.imread("image/1.png",cv2.IMREAD_COLOR)
#可以先创建一个窗口
#cv2.namedWindow("windom",cv2.WINDOW_NORMAL)
cv2.imshow("windom",image)
# cv2.waitKey(0)
# cv2.destroyAllWindows()
#保存图片
#cv2.imwrite("image/save_1.png",image)
#print(image.shape)
"""
可以通过按键来进行一些任务,比如关闭窗口,保存图片
"""
k=cv2.waitKey(0)#按esc按键
if k==27:
    cv2.destroyAllWindows()
elif k==ord("s"):
    cv2.imwrite("image/save_2.png",image)
    cv2.destroyAllWindows()

 

 

下面是用opencv读取, matplotlib进行显示

import cv2
import matplotlib.pyplot as plt
#使用plt来进行处理图片
import numpy as np
image=cv2.imread("image/1.png",cv2.IMREAD_COLOR)
#因为opencv读取的图片是BGR形式,想要用plt显示,则必须转成RGB形式
image=cv2.cvtColor(image,cv2.COLOR_BGR2RGB)
#显示的是灰度图
plt.imshow(image,cmap="gray",interpolation="bicubic")
plt.xticks([]),plt.yticks([])
plt.show()

### 解析 OpenCV 图像读取错误 当使用 `opencv-python` 读取图片时遇到错误,通常是因为图像路径不存在、图像损坏或图像尺寸不符合预期。具体到提到的错误: - 错误信息表明尝试显示宽度和高度不大于零的图像,这违反了断言条件[^1]。 为了有效解决问题,可以采取以下措施来验证并修正潜在原因: #### 验证图像路径有效性 确保提供给 `cv2.imread()` 的文件路径正确无误,并且该位置确实存在有效的图像文件。 ```python import os image_path = "path/to/your/image.jpg" if not os.path.exists(image_path): raise FileNotFoundError(f"The image file {image_path} does not exist.") ``` #### 检查图像加载状态 确认图像成功加载后再继续处理逻辑,防止操作未定义的对象引发异常。 ```python import cv2 image = cv2.imread(image_path) if image is None: print("Failed to load the image, please check the path or format of your image.") else: height, width = image.shape[:2] if height <= 0 or width <= 0: print("The loaded image has invalid dimensions (width and/or height are non-positive).") ``` #### 处理多通道图像问题 如果在训练过程中遇到了非标准三通道(RGB)的输入,则可能是由于数据预处理环节出现了偏差。对于这种情况,建议先审查数据集准备阶段是否有不当之处,比如裁剪、拼接或其他变换操作可能导致额外填充零的情况发生[^2]。 针对上述情况的一个解决方案是在读入前调整期望的形状: ```python desired_channels = 3 def preprocess_image(img_path): img = cv2.imread(img_path) if len(img.shape) != desired_channels + 1: # 加上height和width两个维度 img = cv2.cvtColor(img, cv2.COLOR_GRAY2BGR) if len(img.shape)==2 else img[:, :, :desired_channels] return img ``` 通过以上方法能够帮助排查并修复常见的OpenCV图像读取错误。值得注意的是,在某些特殊场景下还需要考虑环境配置方面的影响因素,例如不同版本间的兼容性等问题[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值