OPENCV-imread

博客介绍了OpenCV库的imread函数,它可读取bmp、jpg等常用格式图片,有两个参数,第二个参数有不同读取方式及对应值。还提到png格式图形显示问题,修复生成的mask是透明的,原因在于png和opencv生成图片逻辑中0和255代表的含义不同。

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

imread

OpenCV库目前支持读取bmp、jpg、png、tiff等常用格式。读取函数为imread函数,imread有两个参数:第一个参数是我们所要读取图片的路径, 第二个参数是图片读取的方式。
IMREAD_COLOR 表示加载彩色图片(默认)
IMREAD_GRAYSCALE以黑白方式加载图片
IMREAD_UNCHANGED原图加载含alpha channel信息,此时输入图像为RGBA模式
以上三个参数的这三个值也可用1,0,-1来表示,方便编程时的输入。

Use the function cv2.imread() to read an image. The image should be in the working directory or a full path of image should be given.
Second argument is a flag which specifies the way image should be read.
cv2.IMREAD_COLOR : Loads a color image. Any transparency of image will be neglected. It is the default flag.
cv2.IMREAD_GRAYSCALE : Loads image in grayscale mode
cv2.IMREAD_UNCHANGED : Loads image as such including alpha channel
Instead of these three flags, you can simply pass integers 1, 0 or -1 respectively

png格式图形的显示

在之前的问题处理中,发现修复问题中生成的mask均是透明的。实际上mask是由四层完全相同的r,g,b,a二值图组成。
原因在于:png中0为完全透明,255为未遮挡情况;
而在常见的opencv生成图片逻辑中,0为黑色,255为白色。
这样造成的后果是:RGB有颜色部分对应alpha完全透明,alpha取值为0
的部分则对应着RGB白色部分,因此造成奇特的png mask图片的透明现象。
在这里插入图片描述

### 正确安装和使用 OpenCV-contrib-Python 为了正确安装并使用 `opencv-contrib-python`,需要确保其与当前使用的 Python 版本兼容。以下是关于安装和测试的相关说明: #### 安装方法 可以通过 pip 工具来安装 `opencv-contrib-python`。如果目标环境中的 Python 是 3.8,则可以运行以下命令完成安装[^1]: ```bash pip install opencv-contrib-python ``` 需要注意的是,在执行上述命令之前,建议先升级 pip 到最新版本以避免潜在的依赖冲突问题: ```bash pip install --upgrade pip ``` #### 验证安装成功 安装完成后,可以在 Python 脚本或者交互式环境中验证模块是否正常加载。通过导入 cv2 库来进行基本的功能检测: ```python import cv2 print(cv2.__version__) ``` 此脚本会打印出已安装的 OpenCV 版本号。 #### 功能测试示例 下面是一个简单的功能测试例子,用于展示如何利用额外算法(如 SIFT 或 SURF),这些通常只存在于 `opencv-contrib-python` 中而不在标准版 `opencv-python` 提供范围内[^2]: ```python import cv2 # 初始化图像读取器 image = cv2.imread('example.jpg', cv2.IMREAD_GRAYSCALE) # 创建SIFT对象实例化 sift = cv2.SIFT_create() # 计算特征点及其描述符 keypoints, descriptors = sift.detectAndCompute(image, None) # 绘制关键点到原图上 output_image = cv2.drawKeypoints( image, keypoints, outImage=None, flags=cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS ) cv2.imshow('SIFT Features', output_image) cv2.waitKey(0) cv2.destroyAllWindows() ``` 以上代码片段展示了如何使用 SIFT 算法提取图片的关键点,并将其可视化显示出来。 #### 注意事项 当同时存在多个 OpenCV 的 PyPI 包时(例如 `opencv-python`, `opencv-contrib-python`, 和 `opencv-python-headless`),应特别注意不要混用不同类型的包,因为这可能导致不可预测的行为或错误发生。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值