如何使用Sobel算子对图片进行边缘检测?

 时间:2026-02-14 15:20:05

1、在文本编辑器中使用如下代码导入opencv、numpy和matplotlib三个模块:

import numpy as np

import cv2 as cv

import matplotlib.pyplot as plt

如何使用Sobel算子对图片进行边缘检测?

2、使用代码 img = cv.imread('./img/horse.jpg',0) 以灰度形式读入待处理图片,并用代码 plt.imshow(img,cmap=plt.cm.gray) 显示读入的图片。

如何使用Sobel算子对图片进行边缘检测?

3、由于图片有长宽两个二维度,使用如下代码对图片x轴y轴分别求导:

x = cv.Sobel(img,cv.CV_16S,1,0)

y = cv.Sobel(img,cv.CV_16S,0,1)

如何使用Sobel算子对图片进行边缘检测?

4、使用如下代码将步骤3中得到的数据转换为unmpy.uint8类型:

absx = cv.convertScaleAbs(x)

absy = cv.convertScaleAbs(y)

如何使用Sobel算子对图片进行边缘检测?

5、使用代码 res = cv.addWeighted(absx,0.5,absy,0.5,0) 将x轴y轴各得到的图片进行混合,混合时两图片的权重各为0.5。

如何使用Sobel算子对图片进行边缘检测?

6、使用代码 plt.imshow(res,cmap=plt.cm.gray) 显示处理完成后的图片,可以发现图片的边缘被检测出来。

如何使用Sobel算子对图片进行边缘检测?

  • linspace(a,b,c)什么意思
  • 什么叫夫琅禾费衍射和菲涅尔衍射,有什么区别
  • 信噪比计算公式是什么
  • matlab清除命令窗口中的内容
  • MATLAB如何使用
  • 热门搜索
    中庸是什么意思 蜕变是什么意思 金缕衣什么意思 60大寿送什么礼物 结婚红包上写什么 元宵节什么时候放鞭炮 什么作文最好写 货郎的意思 益生菌粉的作用 高傲是什么意思