前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于OpenCV的简单边缘检测模型

基于OpenCV的简单边缘检测模型

作者头像
小白学视觉
发布2020-12-07 10:55:25
6830
发布2020-12-07 10:55:25
举报
文章被收录于专栏:深度学习和计算机视觉

本期我们一起看看如何进行图像边缘的检测。边缘检测通常用于理解图像中的对象,帮助机器做出更好的预测。编写边缘检测程序是了解机器如何看待外界的好方法。现在就让我们使用python进行边缘检测吧。

我们将为该项目使用两个主要模块:Numpy,Matplotlib和OpenCV。Matplotlib是一个完整的库,用于在Python中生成静态,动画和交互式可视化。OpenCV是一个高度优化的库,专注于实时应用程序。

OpenCV

OpenCV(开源计算机视觉库)是一个开源计算机视觉和机器学习软件库。OpenCV的构建旨在为计算机视觉应用程序提供通用的基础结构,并加速商业产品中的机器感知。作为BSD许可的产品,OpenCV使企业可以轻松地使用和修改代码。

参考:https : //opencv.org

让我们从安装库开始。

安装库

我们必须安装库,以便我们的程序正常运行。如前所述,我们将只需要两个库。使用PIP库管理器将它们安装在一行中:

pip安装numpy matplotlib opencv-python

安装过程完成后,我们可以将它们导入到我们的代码中。我们将使用Atom文本编辑器完成。

导入cv2 导入numpy作为np 导入matplotlib.pyplot作为plt

边缘检测功能

现在,我们可以转到有趣的部分,在这里我们将编写边缘检测功能。您会惊讶于使用OpenCV软件包如此简单。此OpenCV检测模型也称为Canny边缘检测模型。我们的功能包括三个部分:边缘检测,可视化,最后保存结果。

边缘检测

def simple_edge_detection(image): edgesdetected = cv2.Canny(image,100,200) images = [image,edgesdetected]

了解代码:

  1. Canny是我们调用的使用OpenCV进行边缘检测的方法。
  2. Image是函数的参数,这意味着我们将在调用函数时传递图像。这样,您可以轻松地用不同的图像测试程序。
  3. 100和200是磁滞阈值的最小值和最大值。

可视化

location = [121,122] 对于loc,zip中的edge_image(位置,图片): plt.subplot(loc) plt.imshow(edge_image,cmap ='gray')

了解代码:

  1. 绘图部分需要位置数组。
  2. 然后,我们同时可视化原始图像和边缘检测图像。
  3. cmap参数用于更改图像的颜色。就我们而言,我们正在将它们转换为灰色。

保存结果

该功能的最后一部分将保存边缘检测图像和比较图。OpenCv和Matplotlib软件包;imwritesavefig函数都为我们提供了这个功能。在最后一行中,show函数可以向我们显示创建的图。

cv2.imwrite('edge_detected.png',edgesdetected)plt.savefig('edge_plot.png')plt.show()

选择图片

我们要找到一张测试Canny Edge检测程序的图像。下载图像后,请确保将它们放入与项目相同的文件夹中。这将有助于轻松地将它们导入程序。让我们定义一个图像变量并导入图像。这是使用OpenCV读取图像的方法:

img = cv2.imread('test_image.jpg',0)

这是我将测试模型的示例图像:

运行程序

是时候运行程序了。到目前为止,没有任何东西可以触发该功能。我们必须调用函数也不要忘记将图像作为参数传递进去:

simple_edge_detection(img)

结果如下:

我们已经使用Python创建了边缘检测的代码。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-11-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小白学视觉 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
图像处理
图像处理基于腾讯云深度学习等人工智能技术,提供综合性的图像优化处理服务,包括图像质量评估、图像清晰度增强、图像智能裁剪等。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档