当前位置: 首页 > news >正文

河北住房和建设厅官方网站挖掘爱站网

河北住房和建设厅官方网站,挖掘爱站网,wordpress 公众号主题,盐亭做网站目录 目标 使用OpenCV 显示图像 写入图像 总结使用 使用Matplotlib 注:图片后续补充 目标 在这里,你将了解如何使用Python编程语言中的OpenCV库,实现读取、显示和保存图像的功能。具体来说,你将学习以下函数的用法&#xf…

目录

目标

使用OpenCV

显示图像

写入图像

总结使用

使用Matplotlib


注:图片后续补充

目标

在这里,你将了解如何使用Python编程语言中的OpenCV库,实现读取、显示和保存图像的功能。具体来说,你将学习以下函数的用法:cv.imread() 用于读取图像,cv.imshow() 用于显示图像,cv.imwrite() 用于将图像保存到本地文件系统中。

如果你有兴趣,还可以学习如何使用Matplotlib库来显示图像,这也是一种常见的图像显示方式。

在使用OpenCV库读取图像时,需要使用cv.imread()函数。读取图像时,需要提供图像文件的路径或文件名,函数将返回一个图像对象。

使用OpenCV


除此之外,cv.imread()函数还可以接收一个额外的参数,用于指定图像的读取方式。具体来说,可以使用以下三个标志:

  • cv.IMREAD_COLOR:用于加载彩色图像,会忽略任何图像的透明度,这也是默认标志;
  • cv.IMREAD_GRAYSCALE:用于以灰度模式加载图像;
  • cv.IMREAD_UNCHANGED:用于加载图像,包括alpha通道。

此外,还可以传递整数1、0或-1来表示这三个标志。

下面是使用cv.imread()函数读取图像的示例代码:

import numpy as np
import cv2 as cv#加载彩色灰度图像
img = cv.imread('messi5.jpg', 0)

在这里:0代表读取灰度图像,即将彩色图像转换为灰度图像
另外:

  1. cv.IMREAD_COLOR 或 1:读取彩色图像,忽略 alpha 通道,相当于使用默认值 1。
  2. cv.IMREAD_GRAYSCALE 或 0:读取灰度图像。
  3. cv.IMREAD_UNCHANGED 或 -1:读取原始图像,包括 alpha 通道(如果有)。

下面为效果图(没有报错代表读取成功):

警告

如果在使用OpenCV库读取图像时,提供的图像路径错误,不会引发任何错误,但是打印读取的图像对象时将返回None。换句话说,即使图像路径错误,程序也不会崩溃或抛出异常,而是返回一个空对象。

因此,为了确保程序能够正确读取图像,建议在提供图像路径之前,先检查路径是否正确,以避免意外的错误。

显示图像

使用函数**cv.imshow()**可以在窗口中显示图像。该函数会自动根据图像尺寸调整窗口大小。

在调用**cv.imshow()**函数时,第一个参数是窗口名称,是一个字符串类型的值。第二个参数是要显示的图像对象。你可以创建多个窗口,并指定不同的窗口名称,以显示多个图像。

import cv2 as cv#加载彩色灰度图像
img = cv.imread('messi5.jpg',0)cv.imshow('image',img)
cv.waitKey(0)
cv.destroyAllWindows()

窗口的屏幕截图如下所示:

在使用OpenCV库显示图像时,我们需要使用函数cv.imshow()。该函数需要一个窗口名称作为第一个参数,并需要传递要显示的图像作为第二个参数。调用该函数后,可以使用**cv.waitKey()**函数等待用户交互事件。

cv.waitKey()函数是一个键盘绑定函数,它等待指定毫秒数的时间,等待用户按下任何键或交互事件发生。

如果时间到期时仍未发生交互事件,则程序将继续执行。如果将0作为参数传递,则程序将无限等待用户交互事件。该函数还可以用于检测特定按键的按下事件,例如按下键盘上的字母a。需要注意的是,为了确保图像能够正确显示,必须在显示图像后使用cv.waitKey()**函数。

cv.destroyAllWindows()函数可以用于销毁我们创建的所有窗口,而cv.destroyWindow()函数可以销毁特定的窗口。

需要注意的是,在某些情况下,可以在创建一个空的窗口之后再将图像加载到该窗口中。这时,可以使用cv.namedWindow()**函数来设置窗口的属性,例如是否可以调整窗口大小。如果需要显示的图像尺寸过大或需要在窗口中添加跟踪栏时,可以使用该函数来设置窗口大小。

下面是使用OpenCV库显示图像的示例代码:

cv.namedWindow('image',cv.WINDOW_NORMAL)
cv.imshow('image',img)
cv.waitKey(0)
cv.destroyAllWindows()

效果图

写入图像

在使用OpenCV库保存图像时,需要使用函数cv.imwrite()。该函数需要两个参数:第一个参数是要保存的文件名,第二个参数是要保存的图像对象。

具体来说,你可以像这样调用cv.imwrite()函数:cv.imwrite('messigray.png',img)。这将会把图像以PNG格式保存在工作目录中,文件名为'messigray.png'。

需要注意的是,cv.imwrite()函数可以保存多种不同格式的图像,例如PNG、JPEG、BMP等。在调用该函数时,需要根据需要指定要保存的图像格式,即文件扩展名。

总结使用

下面的代码演示了如何使用OpenCV库加载、显示和保存图像。具体来说,它加载一张灰度图像,将其显示在屏幕上,等待用户按下键盘按键。如果用户按下's'键,则程序将保存图像到本地,并退出;如果用户按下'ESC'键,则程序将直接退出而不保存图像。

import numpy as np
import cv2 as cv
img = cv.imread('messi5.jpg',0)
cv.imshow('image',img)
k = cv.waitKey(0)
if k == 27:         # 等待ESC退出cv.destroyAllWindows()
elif k == ord('s'): # 等待关键字,保存和退出cv.imwrite('messigray.png',img)cv.destroyAllWindows()

警告

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

这是因为在64位计算机上,**cv.waitKey()**函数返回一个64位整数,但是ASCII码值只有8位。因此,将返回值与0xFF(即255)进行按位与运算,可以保留返回值的低8位,这是ASCII码的有效范围。

这种修改可以确保在64位计算机上正确读取键盘输入,并避免潜在的兼容性问题。

使用Matplotlib

Matplotlib是一款Python的绘图库,可以提供多种绘图方法,方便进行数据可视化和图像处理。在接下来的学习中,你将学习到如何使用Matplotlib库来展示和处理图像。通过Matplotlib,你可以方便地对图像进行缩放、保存等操作。

import numpy as np
import cv2 as cv
from matplotlib import pyplot as plt
img = cv.imread('messi5.jpg',0)
plt.imshow(img, cmap = 'gray', interpolation = 'bicubic')
plt.xticks([]), plt.yticks([])  # 隐藏 x 轴和 y 轴上的刻度值
plt.show()

窗口的屏幕截图如下所示: 

 

另外,有空可看看:

Matplotlib提供了许多绘图选项,可以根据需求进行图像的处理和展示。如果需要了解更多的绘图选项,可以参考Matplotlib文档以获取更多详细信息,其中会涵盖许多实用的技巧和方法。

需要注意的是:

当使用OpenCV加载彩色图像时,它处于BGR模式,而Matplotlib以RGB模式显示图像。因此,如果使用OpenCV加载彩色图像,那么在Matplotlib中将无法正确显示彩色图像。如果遇到这种情况,可以采用一些转换方法来将图像从BGR模式转换为RGB模式,以便正确地在Matplotlib中显示彩色图像。关于这个问题,我们将在接下来的练习中进行更详细的讨论。

http://www.tj-hxxt.cn/news/60003.html

相关文章:

  • 系统平台seo免费诊断
  • 长沙建设教育网seo销售
  • 社交网站怎么做网络营销软件
  • 太原网站建设公司大全模板式自助建站
  • 佛山顺德网站建设公司友情链接图片
  • 汕头制作网站软件steam交易链接在哪看
  • 蚌埠做网站多少钱北京高端网站建设
  • 网站核验单下载今日国际重大新闻事件
  • 做站用什么网站程序上海疫情最新消息
  • 网站交易平台重庆网站排名优化教程
  • 婚纱摄影网站seo方案打开百度首页
  • 如何做网站后台管理员搜索关键词排名优化服务
  • 在湖南建设人力资源网站如何做企业网页
  • 六安网站制作哪里有建立网站需要什么条件
  • 傻瓜网站开发工具seo技术优化技巧
  • 无后台网站的维护上海百度推广代理商
  • 西安网站建设公司十强自制网站 免费
  • 做3d人物模型素材下载网站seo关键词优化软件官网
  • 用qq邮箱做网站东莞关键词seo
  • 网站置顶jq网站建设与网页设计制作
  • 网站上传后 后台进不去珠海网站seo
  • 洛阳网站建设外包汽车网络营销推广方案
  • 云南昆州建设工程有限公司网站扬州百度seo公司
  • 山东高密网站建设武汉seo网站优化排名
  • 做网站具体收费网站友情链接的作用
  • 秀网站郑州网络推广代理顾问
  • 电脑系统网站建设网站seo优化方案策划书
  • 建网站制作百度指数在线查询小程序
  • 网站设计建设步骤杭州seo托管公司推荐
  • 好商网的网站可以做中英文切换吗seo免费培训教程