cv2入门函数imread及其相关操作

写于2021.04.21 23时

目录

1.dlib、cv2的安装

2.imread()相关参数,及其操作

3.修改图片大小

4如何处理中文路径问题

小声提醒一句:干货在后面!

安装

这里我们使用到的是dlib库的imread()函数
首先就是dlib库的安装
安装之前,需要安装依赖的库,cmake、boost
可参考下面的命令,使用win+R打开终端,一次输入下面的命令即可

pip install cmake  -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install boost  -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install dlib  -i https://pypi.tuna.tsinghua.edu.cn/simple
安装时可能会报错,例如:
ERROR: Command errored out with exit status 1:
 ERROR: CMake must be installed to build dlib
 等等,如果需要的话会专门写一篇,来解决类似的问题,欢迎留言

装好之后,我可以尝试着导入库

import cv2
import dlib

不报错,就是成功了
然后就可以使用cv2库中的imread()函数了
使用方法,例:
注意:路径不能有中文,不然会报错!!!

img = cv2.imread("./img_1.png")

这里我们就需要了解一下这个imread()函数的参数了

imread为image read的缩写,即图像读取的意思
imread(const string& filename,int flag);
参数一:const string& filename 传入参数为文件名字。
  支持图片格式:
  1、windows位图:*.bmp,*.dib;
  2、JPEG文件:*.jpg,*.jpe,*.jpeg;
  3、JPEG 2000 文件;
  4、PNG 图片:*.png;
  5、便携文件格式;
  6、Sun rasters;
  7、TIFF文件;
参数二:int flag参入参数
    cv2.IMREAD_COLOR:默认参数,读入一副彩色图片,忽略alpha通道
    cv2.IMREAD_GRAYSCALE:读入灰度图片
    cv2.IMREAD_UNCHANGED:顾名思义,读入完整图片,包括alpha通道
    也可以写成如下:
  取值0,将图像转化为灰图;
  取值2,原深度图像;
  取值4,原颜色图像;
  取值1为彩图
&#x3000;&#x3000;&#x4E00;&#x822C;&#x6765;&#x8BF4;&#xFF1A;&#x53D6;&#x503C;<0 alpha通道加载图像,="0&#x4E3A;&#x7070;&#x56FE;&#x3002;" < code></0>
cv2.imread在不加第二个参数的情况下默认将图片转换成了一个三维数组,最里面的一维代表的是一个像素的三个通道(BGR)的灰度值,第二个维度代表的是每一行所有像素的灰度值,第三个维度,也就是最外面的一个维度代表的是这一张图片

由此我们可以知道,读取之后的第二维长度为图片的宽(高)

cv2.imread()读取的是B、G、R(红、绿、蓝)一般取值范围0~255
&#x901A;&#x8FC7;cv2.imread()&#x8BFB;&#x53D6;&#x56FE;&#x7247;
&#x7ECF;&#x8FC7;&#x6D4B;&#x8BD5;&#x53D1;&#x73B0;&#x8BFB;&#x53D6;&#x56FE;&#x7247;&#x7684;&#x957F;&#x5EA6;&#x4E3A;&#x5BBD;
140*146  &#x957F;&#x5EA6;&#x4E3A;146
450*165 &#x957F;&#x5EA6;&#x4E3A;165
img = cv2.imread("./nm0000111_rm4828928_1962-3-21_2009.jpg")

到这里就已经掌握了cv2imread()这个函数,一定要注意读取的顺序是BGR,skimage.io.imread()读取的是RGB,混用的话可能会导致图片显示异常
我们可以做一个转换,来实现图片正常显示的功能
源码如下:

path='./img_1.png'
image = cv2.imread(path)
cv2.imshow("image",image)
cv2.waitKey(0)

b, g, r = cv2.split(image)

rgb_image = cv2.merge([r, g, b])
skimage.io.imshow(rgb_image)
io.show()

经过转换后可以正常显示,下方也会用到这一部分的内容

使用

了解了imread()函数的一些组成要素之后,接下来就是如何使用了,读取一张图片,显示出来
最基本的操作如下

`python
import cv2
path=’./img_1.png’
img=cv2.imread(path)
cv2.imshow(“img_1”,img)
cv2.waitKey(0)

Original: https://blog.csdn.net/liudadaxuexi/article/details/115986619
Author: trust Tomorrow
Title: cv2入门函数imread及其相关操作

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/637759/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球