cv2.imread

cv2.imread():读入图片,真没看过这个源代码。特别谢谢这种网络喷子,自己犯错误很难发现。没有他们进步很难。他说的应该对。我在opencv-python文档没看到。

共两个参数,第一个参数为要读入的图片文件名,

第二个参数为如何读取图片,

cv2.IMREAD_COLOR:以灰度模式读入图片,可以用-0表示;

cv2.IMREAD_GRAYSCALE,1:,读入一副彩色图片,可以用1表示;

cv2.IMREAD_UNCHANGED:读入一幅图片,并包括其alpha通道,可以用2表示

只看到下面文档。最初我写的-1 0 1,后来改成0,1,2.我也蒙了。

flags Flag that can take values of cv::ImreadModes

也就是说很多模式读取。

做了个简单测试

for i in range(-10,10,1):
    tmp = cv2.imread(r"E:\py_code\img_treatment\img\1.jpg",i)
    tmp = cv2.resize(tmp,(200,200))
    cv2.imshow(f"i = {i}",tmp)


cv2.waitKey()

通过这个例子可以看到当 i =0和i=2时候为‘黑白图’,i=1和i=other时候为彩图。也就是说从表面看来说,只有参数为0,1,2才有意义。

import cv2
import numpy as np
for i in range(-10,10,1):
    img = cv2.imread(r"/home/cheng/Documents/practice_py/data/red_rose.jpeg",i)
    print(f"当read中的参数为{i}时候,"
          f"图像的格式为 {img.shape},数据类型{img.dtype},")
    if len(img.shape)==3:
        print(f"channel 1 :极值为{np.max(img[:,:,0])}<-->{np.min(img[:,:,0])}",
              f"channel 2 :极值为{np.max(img[:,:,1])}<-->{np.min(img[:,:,1])}",
              f"channel 3 :极值为{np.max(img[:,:,2])}<-->{np.min(img[:,:,2])}")
    elif len(img.shape)==2:
        print(f"极值为{np.max(img)}<-->{np.min(img)}")

结果

当read中的参数为-10时候,图像的格式为 (720, 1280, 3),数据类型uint8,
channel 1 :极值为253<-->0 channel 2 :极值为255<-->0 channel 3 :极值为255<-->0
当read中的参数为-9时候,图像的格式为 (720, 1280, 3),数据类型uint8,
channel 1 :极值为253<-->0 channel 2 :极值为255<-->0 channel 3 :极值为255<-->0
当read中的参数为-8时候,图像的格式为 (720, 1280, 3),数据类型uint8,
channel 1 :极值为253<-->0 channel 2 :极值为255<-->0 channel 3 :极值为255<-->0
当read中的参数为-7时候,图像的格式为 (720, 1280, 3),数据类型uint8,
channel 1 :极值为253<-->0 channel 2 :极值为255<-->0 channel 3 :极值为255<-->0
当read中的参数为-6时候,图像的格式为 (720, 1280, 3),数据类型uint8,
channel 1 :极值为253<-->0 channel 2 :极值为255<-->0 channel 3 :极值为255<-->0
当read中的参数为-5时候,图像的格式为 (720, 1280, 3),数据类型uint8,
channel 1 :极值为253<-->0 channel 2 :极值为255<-->0 channel 3 :极值为255<-->0
当read中的参数为-4时候,图像的格式为 (720, 1280, 3),数据类型uint8,
channel 1 :极值为253<-->0 channel 2 :极值为255<-->0 channel 3 :极值为255<-->0
当read中的参数为-3时候,图像的格式为 (720, 1280, 3),数据类型uint8,
channel 1 :极值为253<-->0 channel 2 :极值为255<-->0 channel 3 :极值为255<-->0
当read中的参数为-2时候,图像的格式为 (720, 1280, 3),数据类型uint8,
channel 1 :极值为253<-->0 channel 2 :极值为255<-->0 channel 3 :极值为255<-->0
当read中的参数为-1时候,图像的格式为 (720, 1280, 3),数据类型uint8,
channel 1 :极值为253<-->0 channel 2 :极值为255<-->0 channel 3 :极值为255<-->0
当read中的参数为0时候,图像的格式为 (720, 1280),数据类型uint8,
极值为255<-->0
当read中的参数为1时候,图像的格式为 (720, 1280, 3),数据类型uint8,
channel 1 :极值为253<-->0 channel 2 :极值为255<-->0 channel 3 :极值为255<-->0
当read中的参数为2时候,图像的格式为 (720, 1280),数据类型uint8,
极值为255<-->0
当read中的参数为3时候,图像的格式为 (720, 1280, 3),数据类型uint8,
channel 1 :极值为253<-->0 channel 2 :极值为255<-->0 channel 3 :极值为255<-->0
当read中的参数为4时候,图像的格式为 (720, 1280, 3),数据类型uint8,
channel 1 :极值为253<-->0 channel 2 :极值为255<-->0 channel 3 :极值为255<-->0
当read中的参数为5时候,图像的格式为 (720, 1280, 3),数据类型uint8,
channel 1 :极值为253<-->0 channel 2 :极值为255<-->0 channel 3 :极值为255<-->0
当read中的参数为6时候,图像的格式为 (720, 1280, 3),数据类型uint8,
channel 1 :极值为253<-->0 channel 2 :极值为255<-->0 channel 3 :极值为255<-->0
当read中的参数为7时候,图像的格式为 (720, 1280, 3),数据类型uint8,
channel 1 :极值为253<-->0 channel 2 :极值为255<-->0 channel 3 :极值为255<-->0
当read中的参数为8时候,图像的格式为 (720, 1280, 3),数据类型uint8,
channel 1 :极值为253<-->0 channel 2 :极值为255<-->0 channel 3 :极值为255<-->0
当read中的参数为9时候,图像的格式为 (720, 1280, 3),数据类型uint8,
channel 1 :极值为253<-->0 channel 2 :极值为255<-->0 channel 3 :极值为255<-->0

Process finished with exit code 0

都是uint8,只有0和2为灰度图,值域都是0-255(里面有253是因为图片本身的问题)。

最后就是别管了,知道0,1,2有特殊含义就行了,平时读个图片,没啥意义。

mmcv.imreadcv2.imread都是用于读取图像文件的函数。它们的功能和用法有所不同。 mmcv.imread是mmcv库中的函数,用于读取图像文件。它的使用方式是import mmcv后,通过mmcv.imread()来读取图像文件。例如,可以使用mmcv.imread('./test.png')来读取名为test.png的图像文件。可以通过设置flag参数来指定读取模式,例如flag='grayscale'表示以灰度模式读取图像。可以使用mmcv.imshow()来显示图像,使用mmcv.imwrite()来保存图像。 cv2.imread是OpenCV库中的函数,用于读取图像文件。它的使用方式是import cv2后,通过cv2.imread()来读取图像文件。例如,可以使用cv2.imread("test.png")来读取名为test.png的图像文件。可以通过设置第二个参数来指定读取模式,例如0表示以灰度模式读取图像。可以使用cv2.imshow()来显示图像,使用cv2.imwrite()来保存图像。 需要注意的是,mmcv.imreadcv2.imread在一些细节上可能有所不同,例如默认的图像通道顺序可能不同。如果需要更详细的信息,可以参考mmcv和OpenCV的官方学习文档。 总结起来,mmcv.imread是mmcv库中用于读取图像文件的函数,而cv2.imread是OpenCV库中用于读取图像文件的函数。它们的使用方式和一些参数设置可能有所不同,可以根据具体的需求选择适合的函数。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [mmcv急速上手](https://blog.csdn.net/qq_41950533/article/details/124249231)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

颐水风华

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值