【Python-Anaconda-Jupyter Notebook】计算机视觉-图像处理-OpenCv基础实战实例:图像融合之黑客帝国
·
二十年前人类就有了黑客帝国这样的电影,如今人工智能再次风靡,未来何去何从。人工智能的时代,python的天下;python的天下,算法为王。
模块导入
import cv2
import matplotlib.pyplot as plt
import numpy as np
%matplotlib inline
说明:
# opencv读取的格式是BGR
# %matplotlib inline的含义:官方给出的定义是:IPython有一组预先定义好的所谓的魔法函数(Magic Functions),你可以通过命令行的语法形式来访问它们。
%matplotlib inline 用在Jupyter notebook中(代替plt.show()); PyCharm中不支持,在PyCharm中去掉这个即可(用plt.show()代替图像的显示)。
魔法命令都以%或者%%开头,以%开头的成为行命令,%%开头的称为单元命令。行命令只对命令所在的行有效,而单元命令则必须出现在单元的第一行,对整个单元的代码进行处理。
plt.plot(x,y_1) # 由于 %matplotlib inline 的存在,当输入plt.plot(x,y_1)后,不必再输入 plt.show(),图像将自动显示出来
用在Jupyter notebook中具体作用是当你调用matplotlib.pyplot的绘图函数plot()进行绘图的时候,或者生成一个figure画布的时候,可以直接在你的python console里面生成图像。
图片读入
img_python=cv2.imread('python.jpg')
img_heikediguo=cv2.imread('heikediguo.jpg')
# cv2.imread(filename, flags)
参数:
filepath:读入imge的完整路径;
flags:标志位,{cv2.IMREAD_COLOR, cv2.IMREAD_GRAYSCALE,cv2.IMREAD_UNCHANGED};
cv2.IMREAD_COLOR:默认参数,读入一副彩色图片,忽略alpha通道,可用1作为实参替代;
cv2.IMREAD_GRAYSCALE:读入灰度图片,可用0作为实参替代;
cv2.IMREAD_UNCHANGED:顾名思义,读入完整图片,包括alpha通道,可用-1作为实参替代;
PS:alpha通道,又称A通道,是一个8位的灰度通道,该通道用256级灰度来记录图像中的透明度复信息,定义透明、不透明和半透明区域,其中黑表示全透明,白表示不透明,灰表示半透明。
获取图片的shape属性
img_python.shape
运行结果如下:
img_heikediguo.shape
运行结果如下:
说明:
print(img.shape) # 参数-1为按原通道读入,不写的话默认读入三通道图片,例如(112,112,3),其含义分别是高、宽、通道数;
print(img.shape[0]) # 读入的时图片的高度height;
print(img.shape[1]) # 读入的时图片的宽度weight;
print(img.shape[2]) # 图像的通道数;
img.shape[ : 2] 表示取彩色图片的长、宽;
img.shape[ : 3] 则表示取彩色图片的长、宽、通道;
在矩阵中,[0]就表示行数,[1]则表示列数。
图片的显示
cv2.imshow('python',img_python)
cv2.waitKey(0)
cv2.destroyAllWindows()
运行结果:
# 每次要显示一个图都写上面三行是比较麻烦,故将其放入一个函数当中,下面定义了cv_show这样一个函数
def cv_show(name,img):
cv2.imshow(name,img)
cv2.waitKey(0)
cv2.destroyAllWindows()
cv2.namedWindow('heikediguo',cv2.WINDOW_NORMAL)
cv_show('heikediguo',img_heikediguo)
# 这时就可以调用定义的cv_show()函数来显示图片。
# cv2.namedWindow(‘窗口标题’,默认参数)
(1)窗口大小可以改变:
cv2.namedWindow("image",cv2.WINDOW_NORMAL)或者cv2.namedWindow('image',cv2.WINDOW_GUI_NORMAL)
(2)窗口大小不可以改变:
cv2.namedWindow("image",cv2.WINDOW_AUTOSIZE)
(3)窗口大小自适应比例:
cv2.namedWindow("image",cv2.WINDOW_FREERATIO)
(4)窗口大小保持比例:
cv2.namedWindow("image",cv2.WINDOW_KEEPRATIO)
(5)显示色彩变成暗色:
cv2.namedWindow('image',cv2.WINDOW_GUI_EXPANDED)
- cv2.imshow(‘窗口标题’,image),如果前面没有cv2.namedWindow,就自动先执行一个cv2.namedWindow()。窗口默认cv2.WINDOW_AUTOSIZE。
- 使用cv2.imshow()的时候,如果图片太大,会显示不全并且无法调整,因此在cv2.imshow()的前面加上这样的一个语句:cv2.namedWindow('image', 0),得到的图像框就可以自己调整大小,按住四个角会出来小箭头可以拉伸调整。
图片缩放
img_python = cv2.resize(img_python, (1680, 1050))
# 说明:
更多推荐
所有评论(0)