魏老师学生——Cecil:学习OpenCV-机器视觉之旅
什么是GUI?
GUI的全称是Graphical User Interface,即 图形用户接口。在以前的计算机显示界面中,都是消息展示,也就是说展示出来的界面不是图形化的,这样对创作者来说减轻了工作压力,但是增大了使用者理解难度。因此,为了让计算机界面更加人性化,程序员有必要学习GUI特性。
读入图像——cv2.imread( )
- cv2.imread(‘地址’,读取方式) ——解释:地址是图片在本地磁盘中的完整路径,要保证opencv可以顺利读取到图片。如果路径出错,opencv不会报错,但是在对图片打印或者保存等后续操作就无法进行了。读取方式决定函数如何读取图片。
- cv2.IMREAD_COLOR ——解释:(1)读入一张彩色图片,但是不包括图片的透明度,为默认参数。
- cv2.IMREAD_GRAYSCALE ——解释:(0)以灰度模式读入图片,此时图片为单通道。
- cv2.IMREAD_UNCHANGED ——解释:(-1)读入图片,包括图片的alpha通道。(aplha通道即阿尔法通道,用来表示图片透明度的,只有0和1来表示透明和不透明。但是一个byte占用一个0或者1;如果有多个byte存在,就可以表示更多的可能性了。)
- cv2.IMREAD_ANYDEPTH ——解释:(2)若载入的图像的深度为16位或者32位,就返回对应深度的图像,否则,就转换为8位图像再返回。
- cv2.IMREAD_ANYCOLOR ——解释:(4)
读入:代码演示
# coding=utf-8
import cv2
import numpy as np
img = cv2.imread('./images/1.jpg',0)
显示图像——cv2.imshow( )
- cv2.imread(‘窗口名’,图像名) ——解释:第一个参数是显示读取图像的窗口的命名,第二个参数是打算显示的图像的名字。前面带双引号,后面不带。
- cv2.waitKey(0) ——解释:键盘绑定函数,时间尺度毫秒级。输入0代表无限等待键盘输入。
- cv2.destroyAllWindows() ——解释:删除所有显示的窗口。
- cv2.destroyWindows(‘窗口名’) ——解释:删除指定窗口名的窗口。
- cv2.namedWindow(‘窗口名’) ——解释:自建窗口,可以控制窗口的大小。
- cv2.WINDOW_AUTOSIZE ——解释:窗口大小自动设置。
- cv2.WINDOW_NORMAL ——解释:控制窗口大小。 图像维度过大,或者需要添加轨迹条,调整窗口显得很有效率。
显示:代码演示
# coding=utf-8
import cv2
import numpy as np
cv2.nameWindows('image',cv2.WINDOW_NORMAL)
cv2.imread('./images/1.jpg',0)
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
保存图像——cv2.imwrite( )
- cv2.imwrite(‘保存的文件名’,图像名) ——解释:第一个参数是保存的这个图片名字要叫什么,包括图片的格式(jpg、png),第二个参数是目前图片的名字。
保存——代码演示
# coding=utf-8
import cv2
import numpy as np
cv2.imwrite('xiaoyin.png',img)
总结——加载灰度图
# coding=utf-8
import cv2
import numpy as np
img=cv2.imread('xiaoyin.jpg',0)
cv2.imshow('img',img)
k=cv2.waitKey(0)&oxFF
if k == 27: # wait for ECS key to exit
cv2.destroyAllWindows()
elif k == ord('s'): # wait for 's' key to save and exit
cv2.imwrite('xiaojiang.png',img)
cv2.destroyAllWindows()
使用Matplotlib_灰度图像
- Matplotlib 是 Python的一个绘图库,包含各种绘图方法。
# coding=utf-8
import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('xiaoyin.img',0)
plt.imshow(img,cmap = 'gray',interpolation = 'bicubic')
plt.xticks([]),plt.yticks([]) # to hide tick values on X and Y axis
plt.show()
图像灰度效果:
彩色图像用OpenCV加载是BGR模式,而matplotlib加载是RGB模式。故用opencv加载后的彩色图像无法在matplotlib中正确显示。
来源:https://blog.csdn.net/weixin_45407668/article/details/100804349