opencv gui,基于gui的图像处理
GUI函数是opencv的基础知识。介绍了OpenCV图像处理的GUI功能,并结合实例代码进行了详细介绍,对您的学习或工作有一定的参考价值。有兴趣的朋友来看看吧。
00-1010 1.开始使用图像1。阅读图像2。显示图像3。保存图像2。视频入门1。用相机拍摄视频2。播放视频文件3。保存视频摘要OpenCV图像处理
目录
一、图像入门
使用cv.imread()函数读取图像。图像应该在工作目录中,或者应该提供完整的图像路径。第二个参数是一个标志,它指定应该如何读取图像
cv.IMREAD_COLOR:加载彩色图像时,任何图像的透明度都会被忽略。这是默认的徽标。cv.IMREAD_GRAYSCALE:在灰度模式下加载图像。cv.IMREAD_UNCHANGED:加载图像,包括阿尔法通道。
注意
代替这三个标志,你可以简单地分别传递整数1、0或-1。
将numpy作为np导入
将cv2作为cv导入
#以灰度模式加载图像
img=cv.imread(messi5.jpg ,0)
即使图像路径是错误的,它也不会抛出任何错误,但打印img不会给你任何错误。
1.读取图像
使用cv.imshow()函数在窗口中显示图像,窗口自动适应图像大小。
第一个参数是窗口名,它是一个字符串,第二个参数是我们的图像。您可以根据需要创建任意多个窗口,但是窗口的名称应该不同。
cv.imshow(image ,img)
Cv.waitKey(0) #毫秒显示。如果是0,按任意键结束显示。
cv.destroyAllWindows()
Cv.waitKey()是一个键盘绑定函数,它的参数是以毫秒为单位的时间。这个函数为任何键盘事件等待指定的毫秒。如果您在此期间按任何键,程序将继续运行。如果是0,它会一直等到键盘被按下。
Cv.destroyAllWindows()简单的破坏了我们创建的所有窗口。如果要销毁任何指定的窗口,应该使用函数cv.destroyWindow()的参数是确切的窗口名。
将numpy作为np导入
将cv2作为cv导入
#以RGB模式加载图像
img=cv.imread(1.jpg ,1)
cv.imshow(image ,img)
cv.waitKey(0)
cv.destroyAllWindows()
您也可以同时显示两幅图像。
在特殊情况下,您可以先创建一个窗口,然后将图像加载到该窗口中。在这种情况下,您可以指定窗口是否可以调整大小。这是由这个函数,cv.namedWindow().默认情况下,标志是cv.WINDOW_AUTOSIZE.但如果你指定的标志是cv.WINDOW_NORMAL,你可以调整窗口大小。当图像太大时,在窗口中添加一个跟踪栏是很有用的。
将numpy作为np导入
将cv2作为cv导入
#以RGB模式加载图像
img=cv.imread(1.jpg ,1)
cv.imshow(image ,img)
cv.waitKey(0)
cv.destroyAllWindows()
可以看到图片可以拉伸,也可以自己对比效果。
"maodian">
3.保存图像
保存图像,用这个函数 cv.imwrite()。
第一个参数是文件名,第二个参数是你要保存的图像。
import numpy as np
图像小结
下面的程序以灰度模式读取图像,显示图像,如果你按下 's‘ 会保存和退出图像,或者按下 ESC 退出不保存。
import numpy as np
二、视频入门
1.用相机捕捉视频
通常,我们用相机捕捉直播。OpenCV 为此提供了一个非常简单的接口。我们用相机捕捉一个视频(我用的电脑内置摄像头),将它转换成灰度视频并显示。去获取一个视频,你需要创建一个VideoCapture对象。它的参数可以是设备索引或者一个视频文件名。设备索引仅仅是摄像机编号。通常会连接一台摄像机(as in my case)。所以我只传了 0(或者-1)。你可以通过传 1 来选择第二个摄像机,以此类推。之后,你能逐帧捕获。但是最后,不要忘记释放这个 Capture 对象。
import numpy as np
cap.read() 返回一个 bool 值(True/False)。如果加载成功,它会返回True。因此,你可以通过这个返回值判断视频是否结束。
2.播放视频文件
它和从相机捕获一样,只需要用视频文件名更改相机索引。同时显示 frame,为 cv.waitKey() 使用合适的时间。如果它太小,视频将非常快,如果太大,视频将很慢 (嗯,这就是如何显示慢动作)。正常情况下,25 毫秒就可以了。
import numpy as np
视频只有30秒左右,可以看到视频播放速度很快,像是原视频2倍速播放一样。
3.保存视频
我们捕获视频,逐帧处理然后保存下来。对于图像来说,是非常的简单,就用 cv.imwrite()。这里需要做更多的工作。
这次我们创建一个 VideoWriter 对象。我们应该指定输出文件的名字 (例如:output.avi)。然后我们应该指定 FourCC 码。然后应该传递每秒帧数和帧大小。最后一个是 isColor flag。如果是 True,编码器期望彩色帧,否则它适用于灰度帧。
FourCC 是用于指定视频解码器的 4 字节代码。这里 fourcc.org 是可用编码的列表。它取决于平台,下面编码就很好。
In Fedora: DIVX, XVID, MJPG, X264, WMV1, WMV2. (XVID 是最合适的. MJPG 结果比较大. X264 结果比较小)
In Windows: DIVX (还需要测试和添加跟多内容)
In OSX: MJPG (.mp4), DIVX (.avi), X264 (.mkv).
对于 MJPG, FourCC 的代码作为 cv.VideoWriter_fourcc(‘M’,‘J’,‘P’,‘G’) 或 cv.VideoWriter_fourcc(‘MJPG’)* 传递。
import numpy as np
可以看到有avi文件生成。
总结
GUI功能是opencv的入门知识,还是很好理解的。
到此这篇关于OpenCV图像处理——GUI功能的文章就介绍到这了,更多相关OpenCV图像处理内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。