OpenCV-Python
-----2019/3/2
一:OpenCV的Gui特性
目标:
1.读入图像,显示图像,保存图像
2.学习函数cv2.imread(),cv2.imshow(),cv2.imwrite()
1.cv2.imread()
cv2.imread()函数的第二个参数:
- cv2.IMREAD_COLOR:读入一副彩色图像。图像的透明度会被忽略。
- cv2.IMREAD_GRAYSCALE:以灰度模式读入图像。默认参数
- cv2.IMREAD_UNCHANGED:读入一幅图像,并且读入图像的alpha通道。
#读入图像
import cv2
img = cv2.imread("D://DL/img/Throne.jpg",0)
如果读入图像的路径是错误的,OpenCV会报错,错误类似下面error。
error: (-215) size.width>0 && size.height>0 in function cv::imshow
2.cv2.imshow()
#显示图像
cv2.imshow('Throne',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
3.另一种显示图像的做法
也可以先创建一个窗口,之后再加载图像。可以使用cv2.namedWindow()决定窗口是否可以调整大小。初始设定函数标签为cv2.WINDOW_AUTOSIZE。如果标签改为cv2.WINDOW_NORMAL,你就可以调整窗口大小了。当图像维度太大,或者需要添加轨迹时,调整窗口大小会很有用。
import cv2
cv2.namedWindow('Throne',cv2.WINDOW_NORMAL)
cv2.imshow('Throne',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
效果一样。
3.cv2.imwrite()
保存图像需要有文件名。
cv2.imwrite('Ady_Throne.png',img)
True
cv2.imwrite('D://DL/img/Ady_Throne.png',img)
True
返回True即为保存成功,可见添加要保存的路径也可。
总结
下面的程序将会加载一个灰度图,显示图片,按下‘s’键后保存并退出,或者按下ESC键后退出不保存。
import cv2
img = cv2.imread('D://DL/img/Throne.jpg',0)
cv2.imshow('Throne',img)
k = cv2.waitKey(0)
if k == 27:
cv2.destroyAllWindows()
elif k == ord('s'):
cv2.imwrite('D://DL/img/Ady_Throne.png',img)
cv2.destroyAllWindows()