QQ:3020889729 小蔡
才学习opencv没多久,本意是积累和回顾,望大神/大佬勿怪~
第一步自然是引入需要的库——
import cv2
这里边包含opencv图像相关操作需要的内容~
窗体概念
在一个图像的显示式,为了方便观看以及数据观察的对象准确,我们可以将每一次的图像处理放在某一特定的窗体下来实现~
(直接显示图像,那么它显示大小是不可控的,那么我们将图像放入窗体中,我们就既方便了分类,又方便了试试修改大小)
图像加载——读取照片
图像加载的主要函数/方法
cv2.imread——读取图像:主要参数——第一个参数为文件名,第二个参数为是否采用灰度(0)/原彩色图片(!0)~
cv2.imshow——图像显示:主要参数——第一个是图像显示窗体的标题,第二个参数为imread的返回值(句柄)
实例
说明一下:imshow的第一个参数为窗体标题,同时也因为是一个窗体的名字,所以我们可以用这个窗体属性到destroyAllWindows中,指定销毁窗口~
import cv2 # 引入库
# 获取imread返回的对象
img = cv2.imread(r"./imag_in_save/open_class.png", 0) # 读取指定的图片 并采用灰度显示
cv2.imshow('image', img) # 显示图像
cv2.waitKey(0) # 等待按键输入——使用内容
cv2.destroyAllWindows() # 销毁所有窗口
图像保存——存储读取到的图片
图像保存的主要函数
cv2.imwrite——图像保存:write,顾名思义就是将图像写入文件中。因此,很容易理解,他的第一个参数就是保存的文件名,第二个就是imread的返回值——也就是读取到的图片~
提一句,waitkey是存在返回值(ascll码)的,在32位系统中直接使用返回就可以了,但是在64位系统中我们需要&0xFF,这样返回的按键数据才会正确!!!
实例
获取字符的ascll码,我们采用ord函数来获取~
import cv2
img = cv2.imread(r"./imag_in_save/open_class.png", 0) # 获取imread返回的对象
cv2.imshow('image', img)
k = cv2.waitKey(0) & 0xff # 根据输入键值来判断执行内容~
if k == ord('S'): # ord 获取需要的字符的(数)值(ascll码)
cv2.imwrite(r'./imag_in_save/save_open.png', img) # 保存图像
cv2.destroyAllWindows()
elif k == ord('U'):
cv2.destroyAllWindows()