Opencv-Python学习笔记(二) 第二章 Opencv的GUI特性(1)


此文档为本人(初学)主要参考由段力辉翻译的OpenCV-Python中文教程官方教程,并结合多方资料总结成学习笔记,如有侵权请联系本人

第二章 Opencv的GUI特性(1)

2.1 对图片的操作

目标:

  • 学会读入图像、显示图像、保存图像
  • 学习函数:cv2.imread()、cv2.imshow()、cv2.imwrite()、cv2.waitKey()、cv2.destroyAllWindows()、cv2.destroyWindows()、cv2.namedWindow()

2.1.1 读入图像

函数解析:

  • imread(src,flag)——读入图像
      src:图片路径
      flag:读取图片的方式
      • flag = 1 <=> cv2.IMREAD_COLOR:以彩色图像读入,忽略图像透明度,这是默认参数。
      • flag = 0 <=> cv2.IMREAD_GRAYSCALE:以灰度模式读入图像
      • flag = -1 <=> cv2.IMREAD_UNCHANGED:读入一幅图像,并且包括图像的 alpha通道1
  • imshow(winname,src)——显示图像
     winname:窗口名字
     src:图片路径
  • imwrite(src1,src2)——保存图像
     src1:图片保存路径
     src2:图片来源路径
  • waitKey(delay)——键盘绑定函数,等待特定毫秒后,看键盘是否有输入,返回值为ASCII值。如果参数为0,表示无限期的等待键盘输入
     delay:延时的时间,单位ms
  • destroyAllWindows()——删除建立的全部窗口
  • destroyWindow(winname)——删除指定的窗口
     winname:指定窗口名
  • namedWindow(winname,flag)——新建显示窗口
     winname:新建的窗口名称
     flag:窗口类型标识
      • WINDOW_AUTOSIZE 窗口大小自动适应图片大小,并且不可手动更改
      • WINDOW_NORMAL 用户可以改变这个窗口大小(上面图2就是使用的它)
      • WINDOW_OPENGL 窗口创建的时候会支持OpenGL2

实战演练:
 示例一:

import cv2 as cv 
src1 = cv.imread(r"D:\Demons_Working\Image&Video\Image\c.jpg",1)#引号内是你计算机内图片的路径
src2 = cv.imread(r"D:\Demons_Working\Image&Video\Image\c.jpg",0)#r取消转义字符或者使用\\
src3 = cv.imread("D:\\Demons_Working\\Image&Video\\Image\\c.jpg",cv.IMREAD_GRAYSCALE)#flag = 0 等价于 cv.IMREAD_GRAYSCALE
cv.namedWindow("test",cv.WINDOW_AUTOSIZE)#创建一个窗口
cv.imshow("test1",src1)#在窗口test1显示src1
cv.imshow("test2",src2)#在窗口test2显示src2
cv.imshow("test3",src3)#在窗口test3显示src3
cv.waitKey(0)#等待任意键
cv.destroyAllWindows()#关闭所有窗口

 显示结果如下:
结果
 示例二:

import cv2 as cv
src1 = cv.imread(r"D:\Demons_Working\Image&Video\Image\t.jpg")
src2 = cv.imread(r"D:\Demons_Working\Image&Video\Image\r.jpg")
cv.namedWindow("test4",cv.WINDOW_AUTOSIZE)#自定义窗口大小
cv.namedWindow("test5",cv.WINDOW_NORMAL)
cv.imshow("test4",src1)
cv.imshow("test5",src2)
k = cv.waitKey(0)
if k == 27:
	cv.destroyWindow("test4")
if k == ord('s'):
	cv.imwrite(r"C:\Users\demons\Pictures\Saved Pictures\save_image.png",src1)
	cv.destroyAllWindows()

 显示结果如下:
结果
 改变图片大小之后
结果2
 点击”s“保存之后
结果3

注意:

  1. cv2.waitKey() 是一个键盘绑定函数,它的时间尺度是毫秒级。函数等待特定的几毫秒,看是否有键盘输入。特定的几毫秒之内,如果按下任意键,这个函数会返回按键的 ASCII 码值,程序将会继续运行。如果没有键盘输入,返回值为 -1,如果我们设置这个函数的参数为 0,那它将会无限期的等待键盘输入。它也可以被用来检测特定键是否被按下,例如按键 s 被按下,执行保存操作等。
  2. ord(‘s’)表示输出值是否等于字符‘s’

  1. 阿尔法通道(Alpha Channel)是指一张图片的透明和半透明度。例如:一个使用16位存储的图片,可能5位表示红色,5位表示绿色,5位表示蓝色,1位是阿尔法。在这种情况下,它要么表示透明要么不是。一个使用32位存储的图片,每8位表示红绿蓝,和阿尔法通道。在这种情况下,就不光可以表示透明还是不透明,阿尔法通道还可以表示256级的半透明度。 ↩︎

  2. OpenGL(Open Graphics Library),译名:开放图形库或者“开放式图形库”,是用于渲染2D、3D矢量图形的跨语言、跨平台的应用程序编程接口(API)。这个接口由近350个不同的函数调用组成,用来从简单的图形比特绘制复杂的三维景象。而另一种程序接口系统是仅用于Microsoft Windows上的Direct3D。OpenGL常用于CAD、虚拟实境、科学可视化程序和电子游戏开发。 ↩︎

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值