python-opencv边缘检测

article/2025/9/15 3:52:32

9.python-opencv边缘检测

第一章 python-opencv-图片导入和显示
第二章 python-opencv图像简单处理
第三章 python-opencv图像mask掩膜处理
第四章 python-opencv图像马赛克
第五章 python-opencv人脸马赛克
第六章 python-opencv人脸检测
第七章 python-opencv图像张贴
第八章 python-opencv轮廓绘制


`

文章目录

  • 9.python-opencv边缘检测
  • 前言
  • 一、完整代码
  • 二、部分代码说明
    • 1.高斯模糊处理
    • 2.轮廓检测
  • 结果展示


前言

本章主要说明如何使用python-opencv题图图片中图案的边缘。


一、完整代码

import cv2if __name__ == '__main__':# 加载图片img = cv2.imread('./tong.jpg')# 将图片转化为灰度图像gray = cv2.cvtColor(img, code = cv2.COLOR_BGR2GRAY)# 将灰度图像进行高斯模糊gray1 = cv2.GaussianBlur(gray, (5,5),0)  #高斯模糊# 进行轮廓的检测canny = cv2.Canny(gray1, 100, 200)cv2.imshow('dog', canny)cv2.waitKey(0)cv2.destroyAllWindows()

二、部分代码说明

1.高斯模糊处理

在进行轮廓检测前进行高斯模糊处理是为了去除噪声。

opencv中的高斯模糊函数定义如下:

GaussianBlur(src, ksize, sigmaX, dst=None, sigmaY=None, borderType=None)

各参数解释:

该函数将源图像与指定的高斯核进行卷积。
. src 输入图像; 图像可以有任意数量的通道,这些通道被处理
. dst 输出与 src 大小和类型相同的图像。
. ksize 高斯内核大小。 ksize.width 和 ksize.height 可以不同,但它们都必须是正数和奇数。 或者,它们可以是零,然后根据 sigma 计算它们。
. sigmaX X 方向的高斯核标准差。
. sigmaY Y 方向的高斯核标准差; 如果 sigmaY 为零,则设置为等于 sigmaX,如果两个 sigma 均为零,则根据 ksize.width 和 ksize.height 计算,
. borderType 像素外推法

本文中的使用方法:

gray1 = cv2.GaussianBlur(gray, (5,5),0)

将灰度图像gray使用5x5的高斯核进行处理,高斯核尺寸越大去噪效果越好,但是图像会越模糊,X 方向的高斯核标准差设置为0。

高斯模糊效果如下,左侧为原始图片,右侧为高斯模糊处理后的图片:
在这里插入图片描述


2.轮廓检测

轮廓建材使用canny函数,定义如下:

Canny(image, threshold1, threshold2, edges=None, apertureSize=None, L2gradient=None)

各参数解释:

Canny(图像,threshold1,threshold2[,edges[,apertureSize[,L2gradient]]])->边缘
.
.该函数在输入图像中查找边缘,并使用 Canny 算法在输出地图边缘中标记它们。 threshold1 和 threshold2 之间的最小值用于边缘链接。最大值用于查找强边缘的初始段。
. image 8 位输入图像。
. edges 输出边缘图;单通道 8 位图像,其大小与 image 相同。
. threshold1 滞后过程的第一个阈值。
. threshold2 滞后过程的第二个阈值。
. apertureSize Sobel 算子的孔径大小。

在本文的使用方法:

canny = cv2.Canny(gray1, 100, 200)

结果展示

在这里插入图片描述
在这里插入图片描述


http://chatgpt.dhexx.cn/article/MPxueC30.shtml

相关文章

opencv边缘检测

边缘检测的一般步骤 滤波 边缘检测的算法对噪声很敏感,所以采用滤波器来改善边缘检测器的性能。 增强 增强边缘的基础是确定图像各点邻域强度的变化值。增强算法可以将图像灰度点邻域强度值有显著变化的点凸显出来。在具体编程实现时,可通过计算梯度…

14---OpenCV:图像检测之边缘检测

一、图像边缘 边缘(edge)是指图像局部强度变化最显著的部分。主要存在于目标与目标、目标与背景、区域与区域(包括不同色彩)之间,是图像分割、纹理特征和形状特征等图像分析的重要基础。图像强度的显著变化可分为: 阶跃变化函数,即图像强度在…

OpenCV学习11_边缘检测

本部分,我们将一起学习OpenCV中边缘检测的各种算子和滤波器-Canny算子、Sobel算子、Laplacian算子以及Scharr滤波器。 一、边缘检测步骤 在具体介绍之前,先来一起看看边缘检测的一般步骤。 1.【第一步】滤波 边缘检测的算法主要是基于图像强度的一阶和二阶导数,但导数通常对噪…

opencv--边缘检测

opencv--边缘检测 1 边缘检测原理2 Sobel检测算子2.1 Sobel检测方法2.2 应用 3 Laplacian算子4. Canny边缘检测4.1 原理4.2应用 5 算子比较 1 边缘检测原理 边缘检测是图像处理和计算机视觉中的基本问题,边缘检测的目的是标识数字图像中亮度变化明显的点。图像属性…

【OpenCV--边缘检测】

目录 一、边缘检测概念 二、Sobel算子 1.描述: 2.方法: 3.Sobel算子的应用: 三、Laplacian算子 1.描述: 2.应用: 四、Canny边缘检测 1.原理: 2.应用: 一、边缘检测概念 1.边缘检测是图像处理和…

利用OpenCV进行边缘检测

简 介: 本文讨论了图像处理中重要的技术:边缘检测,重点介绍了两种方法(Sobel边缘检测和Canny边缘检测)。在展示OpenCV中的用法 同时也强调了为什么图像平滑是重要的预处理步骤。在Canny边缘检测中 也是使用的Sobel算子…

微信小程序实现轮播图根据图片大小自适应高度

上效果图 话不多说——————上代码 首先wxml <swiper class"con_img" style"height:{{swiperheight}}px" indicator-dots"true" autoplay"true" indicator-active-color"#f8e112" bindchange"changeheight&quo…

微信小程序-图片自适应

image组件 使用使用mode&#xff1a;widthFix&#xff0c;宽度固定&#xff0c;高度自适应 <image class"nav_img" mode"widthFix" src"{{img}}"></image> 注意&#xff0c;在初次进入页面时会有高度拉伸情况&#xff0c;使用样式…

小程序中图片宽度实现100%,高度自适应

在做轮播图时放了几个图片&#xff0c;但是显示一直怪怪的&#xff0c;宽度没有占满&#xff0c;右边总是留一大块空白&#xff0c;怪难看的&#xff0c;开始试了所有的mode属性都不行&#xff0c;至于mode属性起什么作用可以查一下小程序组件的API说明&#xff0c;主要用于控制…

微信小程序之swiper组件高度自适应

要求&#xff1a; &#xff08;顶部广告栏 &#xff09; 改变swiper组件的固定高度&#xff0c;使之随内部每张图片的高度做自适应 原理&#xff1a; 图片加载完之后&#xff0c;获取图片的原始宽高&#xff0c;根据宽高比&#xff0c;计算出适应后的宽高&#xff0c;如果是适…

微信小程序图片固定宽度,高度自适应处理方法及相关API介绍

微信小程序图片固定宽度&#xff0c;高度自适应处理方法及相关API介绍 1、背景 在我们写js代码时&#xff0c;控制图片固定宽度固定&#xff0c;使得高度自适应缩小&#xff0c;是非常简单的&#xff0c;但在微信小程序中不了解微信小程中组件image相关的属性是有些麻烦的&am…

html微信图片自适应,微信小程序实现图片高度自适应

1. swiper轮播海报通过wx.getSystemInfo接口获取屏幕高度&#xff0c;高度依据图片宽高等比缩放 运行于app.js&#xff0c;全局保存 // 设备信息 wx.getSystemInfo({ success: function(res) { that.screenWidth res.windowWidth; } }); page前端调用 bannerHeight: Math.ceil…

微信小程序的swiper轮播图中的图片设置自适应高度的一种方法

微信小程序的swiper轮播图中的图片设置自适应高度的一种方法 小程序中的轮播图很简单&#xff0c;但是唯一的缺陷就是 swiper 是固定的150px 高度&#xff08;320px 宽度&#xff09;&#xff0c;这样如果传入的图片大于这个高度就会被隐藏。那么如何让图片自适应不同分辨率是一…

【小程序中image自适应以及默认高度问题】

原因&#xff1a;小程序不知道background-image&#xff0c;本人开发小程序有个头图&#xff0c;根据天气展示不同的头图&#xff0c;要适配各种宽窄不同的屏幕以及Ipad&#xff0c;不能拉伸图片&#xff0c;UI不同意使用渐变&#xff0c;其实使用宽100%完全可以解决&#xff0…

小程序图片高度自适应等问题

小程序图片高度自适应 这里踩了很多遍的坑&#xff0c;花了很多时间&#xff0c;以为像以前以前给他上级的盒子不给高度就行了&#xff0c;oh,no&#xff0c;这是一个坑&#xff0c;关键在于image标签的一个属性&#xff1a;mode"widthFix"&#xff0c;简单搞定 &l…

微信小程序图片高度按照图片真实宽高比自适应

原理&#xff1a;image组件bindload属性 前端在按照设计图定的宽度做好图片的宽高之后&#xff0c;如果图片的原始宽高比对应不上&#xff0c;那么图片就会出现拉伸变形的情况&#xff0c;虽然微信小程序有mode属性可以对图片进行适应&#xff0c;但是会有部分显示不完全或者会…

微信小程序——整个页面的自动适应布局、图片自适应、高度自动占满剩余部分

1、按比例适应布局 大家有没有过一个烦恼&#xff0c;就是让某个view的高度或者宽度扩大点&#xff0c;而且是要按比例适应不同的手机&#xff0c;遇到这类问题应该怎么办&#xff1f; 下面就为大家讲解怎么做一个能够自动适应不同手机的布局 1、像素单位 rpx 首先&#xff…

用arcgis裁剪面时出错,ERROR 999999: 执行函数时出错

转载地址&#xff1a;http://blog.sina.com.cn/s/blog_712f5b3b0101frfj.html 方法&#xff1a;ArcToolBox tool Data Management Tools -> Features -> Repair Geometry . 注&#xff1a;要裁剪的图层是要编辑&#xff08;editor&#xff09;状态。

ArcGIS裁剪时警告 warning001003:Datum conflict between input and output

问题描述 ArcGIS进行clip操作的时候警告&#xff1a;warning001003:Datum conflict between input and output。 原因 问题在于&#xff0c;输入和裁剪范围的坐标系不同。即Input raster和output extent两个图层的坐标系不同。 解决方案 统一坐标系统&#xff0c;具体方法很…

ArcGIS裁剪影像如何保持裁剪完全一致

ArcGIS裁剪影像如何保持裁剪范围完全一致 在长时间序列的数据分析中&#xff0c;经常会遇到要求所有的栅格数据范围一致&#xff0c;栅格数一致&#xff0c;所以在使用ArcGIS时&#xff0c;需要设置一些参数&#xff0c;才能得到正确的结果。 使用mask工具&#xff08;掩膜提取…