首页 > 编程知识 正文

opencv处理图像(pythonopencv)

时间:2023-05-06 13:41:52 阅读:101958 作者:1532

00-1010在这里,您将学习如何阅读图像,如何显示图像以及如何将其保存回来。您将学习以下功能:cv.imread()、cv.imshow()、cv.imwrite()(可选)。您将学习如何使用Matplotlib

目标

显示图像来读取图像。

使用cv.imread()函数读取图像。图像应该在工作目录中,或者应该给出图像的完整路径。

第二个参数是指定如何读取图像的标志。

简历。加载彩色图像。任何图像的透明度都将被忽略。这是默认标志。简历。IMREAD _ GRADE:以灰度模式cv加载图像。IMREAD _ ANGEN:加载图像,包括alpha通道。请注意,除了这三个标志之外,您可以简单地分别传递整数1、0或-1。

请参见以下代码:

将numpy作为np导入

将cv2作为cv导入

#加载彩色灰度图像

Img=cv.imread('梅西5.jpg ',0)注意

即使图像路径错误,也不会导致任何错误,但print(img)会给出None。

显示图像

使用函数cv.imshow()在窗口中显示图像。窗口会自动适应图像大小。

第一个参数是窗口名,它是一个字符串。第二个参数是我们的对象。您可以创建任意多个窗口,但可以使用不同的窗口名称。

cv.imshow('image ',img)

cv.waitKey(0)

cv.destroyAllWindows()窗口的截图如下(在Fedora-Gnome机器中):

Cv.waitKey()是一个键盘绑定功能。它的参数是以毫秒为单位的时间。该函数等待任何键盘事件指定的毫秒数。如果您在此期间按任何键,程序将继续运行。如果0被通过,它将无限期地等待一次击键。也可以设置检测特定按键,比如按A键,我们后面再讨论。

请注意,除了键盘绑定事件之外,该功能还处理许多其他GUI事件,因此您必须使用它来实际显示图像。

Cv.destroyAllWindows()只会销毁我们创建的所有窗口。如果要销毁任何特定窗口,请使用函数cv.destroyWindow()将确切的窗口名称作为参数传递。

请注意,在特殊情况下,您可以创建一个空窗口,然后将图像加载到窗口中。在这种情况下,您可以指定窗口是否可以调整大小。这是通过函数cv.namedWindow()完成的。默认情况下,标志为cv。然而,如果标志被指定为cv。窗口_正常,你可以调整窗口大小。当图像尺寸过大并且窗口中添加了跟踪条时,这很有帮助。

请参见以下代码:

cv.namedWindow('image ',cv。窗口_正常)

cv.imshow('image ',img)

cv.waitKey(0)

Cv.destroyAllWindows()写入图像

使用cv.imwrite()保存图像。

第一个参数是文件名,第二个参数是要保存的图像。cv.imwrite('梅西格雷. png ',img)

这将以PNG格式将图像保存在工作目录中。

摘要

在下面的程序中,以灰度加载图像,显示图像,按S保存图像并退出,或按ESC不保存直接退出。

将numpy作为np导入

将cv2作为cv导入

img=cv.imread('梅西5.jpg ',0)

cv.imshow('image ',img)

k=cv.waitKey(0)

如果k==27: #等待电子稳定控制退出

cv.destroyAllWindows()

elif k==order(' s '): #等待关键字,保存并退出

cv.imwrite('梅西格雷. png ',img)

Cv.destroyAllWindows()注意

如果您使用的是64位计算机,则必须按如下方式修改该行:k=cv.waitKey(0)0xFF。

使用Matplotlib

Matplotlib是Python的画图库,可以为你提供多种画图方式。你将在下一篇文章中看到它们。在这里,您将学习如何使用Matplotlib显示图像。您可以使用Matplotlib缩放图像、保存图像等。

将numpy作为np导入

将cv2作为cv导入

从matplotlib导入pyplot作为plt

img=cv.imread('梅西5.jpg ',0)

plt.imshow(img,cmap='gray ',插值='bicubic ')

PLT . XT picks([]),plt.yticks([]) #隐藏X轴和Y轴上的比例值。

plt.show()窗口的截图如下:

你也可以看看

Matplotlib提供了许多绘图选项。有关更多详细信息,请参考Matplotlib文档。

注意

OpenCV加载的彩色图像处于BGR模式。但是Matplotlib是以RGB模式显示的。因此,如果使用OpenCV读取彩色图像,彩色图像将无法在Matplotlib中正确显示。有关更多详细信息,请参见练习。

其他资源

Matplotlib绘图样式和功能:http://matplotlib.org/api/pyplot_api.html练习

当活动键试图在OpenCV中加载彩色图像并在Matplotlib中显示它们时,会出现一些问题。阅读这篇讨论:http://stackoverflow.com/a/15074748/1134940)并理解它。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。