欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

opencv-python笔记1-图像处理基本操作

程序员文章站 2022-03-26 11:28:26
...

opencv-python笔记1-图像处理基本操作

  1. 读取图像
import cv2
"""读取图像 imread"""
cus = cv2.imread('C:\\8.png',-1)
#print(cus)#输出图像的部分像素值

imread参数设置-1是表示保持原格式不变,还有很多别的参数设置,(附在最后)
imread能够读取多种不同类型的图像。该函数有返回值,返回值是读取到的图像。还有注意,imread好像只支持全英文的文件名,如果出现中文可能读取不了。

  1. 显示图像
cv2.namedWindow('pra',0) #创建指定名称的窗口
cv2.imshow('pra',cus) #显示图像
key = cv2.waitKey(0) #imshow后面必须跟waitKey 不然图片会显示不出来

if key==ord('A'):  #ord函数返回ASCLL码
    cv2.imshow('p1',cus)
    key = cv2.waitKey(0)
if key==ord('B'):
    cv2.imshow('p2',cus)
    key = cv2.waitKey(0)

每次调用imshow函数后面必须要跟一个waitKey(0),不然图片显示不出来。

waitKey函数用来等待按键:
retval = cv2,waitKey([delay])
1) retval表示返回值,没有按键返回-1; 如果有按键被按下,则返回该按键的ASCLL码。
2) delay表示等待键盘触发的时间,单位是ms。当该值是负值或0时无限等待,默认值0。如果是0,程序会一直等待,直到有按下键盘的事件发生,才会执行后续程序。如果参数是正数,则在这段时间内,程序等待按下键盘按键,如果超时了直接执行后面的语句。

python提供了函数 ord() 用来获取字符的ASCLL码值。

为什么要用这个namedWindow()呢,其实不用加这一行代码,程序也能正常显示图像。经过尝试,发现加上这个函数,有一个优势,可以*拖动箭头改变显示的图片的大小。如果直接imshow(),显示的图片就不能箭头调整大小。但是namedWindow()一定要把参数0带上,这样才能使用双箭头调整大小。

将上面的两个if代码更新一下,测试这个namedWindow()

if key==ord('A'):
 cv2.namedWindow('p1',0) 
    cv2.imshow('p1',cus)
    key = cv2.waitKey(0)
if key==ord('B'):
    cv2.namedWindow('p2',0) 
    cv2.imshow('p2',cus)
    key = cv2.waitKey(0)
    
#cv2.destroyWindow('p1')
cv2.destroyAllWindows()

opencv-python笔记1-图像处理基本操作这段代码最后使用了destroyWindow()函数,用来释放指定窗口。

  1. 保存图像
r = cv2.imwrite('C:\\Users\\24725\\Desktop\\new8.png',cus)#保存图像

retval = cv2.imwrite(filename, img, params)
1) 该函数有返回值,保存成功返回True
2) 需要提供目标文件的完整路径名或者相对路径
3) img是需要保存的图片对象
4) params是保存类型参数



--------附图imread参数设置(来自网络,非原创图,仅参考)
opencv-python笔记1-图像处理基本操作