cv2保存的图片是什么?RGB or BGR

鉴于上篇文章中的问题,这里为了阅读方便,新开一个。

因为cv2读图得到的肯定不是RGB的图,而是GBR的,所以当保存其他RGB的图的时候,肯定需要转换才可以。

上面有两层意思,下面复现:

1-cv2读图,存图,不需要转换

没毛病。只是保存的时候肯定有些什么特殊变化,因为保存后的图比之前内存大了(不是上面显示的压缩,上面图是错位了)

2-Image读图,cv2存图肯定需要转换。

Image读图后肯定是RGB,要保存为RGB的图,那么需要转换。

下图是没有转换直接保存得到的图:颜色不对

下面是RGB2BGR后保存的,没有错误

使用OpenCV提取图片RGB值是一个常见的图像处理任务。以下是使用Python和OpenCV库来实现这一功能的步骤: 1. 首先,确保你已经安装了OpenCV库。如果没有安装,可以使用pip进行安装: ``` pip install opencv-python ``` 2. 然后,可以使用以下代码来提取图片RGB值: ```python import cv2 # 读取图片 image = cv2.imread('path_to_your_image.jpg') # 检查图片是否成功加载 if image is None: print("Error: Could not open or find the image.") exit() # 获取图片的宽、高和通道数 height, width, channels = image.shape # 遍历每个像素并提取RGB值 for y in range(height): for x in range(width): # 获取像素的BGR值 b, g, r = image[y, x] # 如果需要RGB而不是BGR,可以交换顺序 # r, g, b = image[y, x] # 打印RGB值 print(f"Pixel at ({x}, {y}): R={r}, G={g}, B={b}") # 如果只想提取特定位置的RGB值,比如中心点 center_x = width // 2 center_y = height // 2 b, g, r = image[center_y, center_x] print(f"Center pixel RGB values: R={r}, G={g}, B={b}") ``` 这段代码首先使用 `cv2.imread()` 函数读取图片。然后,它检查图片是否成功加载。接下来,它获取图片的尺寸信息,包括高度、宽度和通道数。 在嵌套的 for 循环中,代码遍历每个像素的位置,并使用 `image[y, x]` 提取每个像素的 BGR 值(注意 OpenCV 默认使用 BGR 而不是 RGB 格式)。如果需要 RGB 格式,可以简单地交换 B 和 R 的值。 最后,代码还展示了如何提取特定位置(比如图片中心)的 RGB 值。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小李飞刀李寻欢

您的欣赏将是我奋斗路上的动力!

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

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

打赏作者

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

抵扣说明:

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

余额充值