OpenCV基础知识(8)— 图形检测

这篇具有很好参考价值的文章主要介绍了OpenCV基础知识(8)— 图形检测。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

OpenCV基础知识(8)— 图形检测,OpenCV:从入门到实战,opencv,人工智能,计算机视觉,目标检测,机器学习

前言:Hello大家好,我是小哥谈。图形检测是计算机视觉的一项重要功能。通过图形检测可以分析图像中可能存在的形状,然后对这些形状进行描绘,例如搜索并绘制图像的边缘,定位图像的位置,判断图像中有没有直线、有没有圆形等。虽然图形检测涉及非常深奥的数学算法,但是OpenCV已经将这些算法封装成了简单的方法,开发者只要学会如何调用方法、如何调整参数即可很好的实现检测功能。本节课就介绍如何检测图像的形状、图像所占的区域,以及如何查找图像中出现的几何图形等。🌈

OpenCV基础知识(8)— 图形检测,OpenCV:从入门到实战,opencv,人工智能,计算机视觉,目标检测,机器学习 前期回顾:

         史上最全OpenCV常用方法及使用说明汇总,建议收藏!

         OpenCV基础知识(1)— OpenCV概述

         OpenCV基础知识(2)— 图像处理的基本操作(读取图像、显示图像、保存图像和获取图像属性)

         OpenCV基础知识(3)— 图像数字化基础(像素、色彩空间)

         OpenCV基础知识(4)— 绘制图形(线段、矩形、圆形、多边形和文字)

         OpenCV基础知识(5)— 几何变换(缩放、翻转、旋转和透视)

         OpenCV基础知识(6)— 滤波器(均值滤波器、中值滤波器、高斯滤波器和双边滤波器)

         OpenCV基础知识(7)— 腐蚀与膨胀

         目录

🚀1.图像的轮廓 

🚀2.轮廓的拟合

💥💥2.1 矩形包围框

💥💥2.2 圆形包围框

🚀3.Canny边缘检测

🚀4.霍夫变换

💥💥4.1 直线检测

💥💥4.2 圆环检测

🚀5.总结

OpenCV基础知识(8)— 图形检测,OpenCV:从入门到实战,opencv,人工智能,计算机视觉,目标检测,机器学习

🚀1.图像的轮廓 

轮廓,是指图像中图形或物体的外边缘线条。简单的几何图形轮廓是由平滑的线构成的,容易识别,但不规则的轮廓可能有许多个点构成,识别起来比较困难。

OpenCV提供的findContours()方法可以通过计算图像梯度来判断出图像的边缘,然后将边缘的点封装成数组返回。🌳

findContours()方法的语法格式如下:

contours,hierarchy = cv2.findContours(image,mode,method)

参数说明:

image:被检测的图像,必须是8位单通道二值图像。如果原始图像是彩色图像,必须转为灰度图像,并经过二值化阈值处理。

mode:轮廓的检索模式,具体值详见表。

参数值 含义
cv2.RETR_EXTERNAL 只检测外轮廓
CV2.RETR_LIST 检测所有轮廓,但不建立层次关系。
CV2.RETR_CCOMP 检测所有轮廓,并建立两级层次关系。
CV2.RETR_TREE 检测所有轮廓,并建立树状结构的层次关系。

method:检测轮廓时使用的方法,具体值详见表。

参数值 含义
cv2.CHAIN_APPROX_NONE 储存轮廓上的所有点
cv2.CHAIN_APPROX_SIMPLE 只保存水平、垂直或对角线轮廓的端点
CV2.CHAIN_APPROX_TC89_L1 Ten-Chin1近似算法的一种
CV2.CHAIN_APPROX_TC89_KCOS Ten-Chin1近似算法的一种

返回值说明:

contours:检测出的所有轮廓,list类型,每一个元素都是某个轮廓的像素坐标数组。

hierarchy:轮廓之间测层次关系。

通过findContours()方法找到图像轮廓之后,为了方便开发人员观测,最好能把轮廓画出来,于是OpenCV方法提供了drawContours()方法专门用来绘制这些轮廓。🌳

drawContours()方法的语法如下:

image = cv2.drawContours(image,contours,contourIdx,color,thickness,lineType,hierarchy,maxLevel,offse)

参数说明:

image:被绘制轮廓的原始图像,可以是多通道图像。

contours:findContours()方法得出的轮廓列表。

contourIdx:绘制轮廓的索引,如果为-1则绘制所有轮廓。

color:绘制颜色,使用RGB格式。

thickness:可选参数,画笔的粗细程度,如果该值为-1则绘制实心轮廓。

lineType:可选参数,绘制轮廓的线型。

hierarchy:可选参数,findContours()方法得出的层次关系。

maxLevel:可选参数,绘制轮廓的层次深度,最深绘制第maxLevel层。

offse:可选参数,偏移量,可以改变绘制结果的位置。

返回值说明:

image:同参数中的image,方法执行后原始图像中就包含绘制的轮廓了,可以不使用此返回值保存结果。

案例1:

绘制几何图像的轮廓,具体代码如下:

import cv2
img = cv2.imread("shape1.png")  # 读取原图
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)  # 彩色图像转为变成单通道灰度图像
t, binary = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)  # 灰度图像转为二值图像
# 检测图像中出现的所有轮廓,记录轮廓的每一个点
contours, hierarchy = cv2.findContours(binary, cv2.RETR_LIST, cv2.CHAIN_APPROX_NONE)
# 绘制所有轮廓,宽度为5,颜色为红色
cv2.drawContours(img, contours, -1, (0, 0, 255), 5)
cv2.imshow("img", img)  # 显示绘制结果
cv2.waitKey()  # 按下任何键盘按键后
cv2.destroyAllWindows()  # 释放所有窗体

运行效果如图所示:

OpenCV基础知识(8)— 图形检测,OpenCV:从入门到实战,opencv,人工智能,计算机视觉,目标检测,机器学习

案例2:

绘制花朵的轮廓。

绘制之前首先要降低图像中的噪声干扰,先进行滤波处理,再将图像处理成二值灰度图像,并检测出轮廓,再利用绘制轮廓的方法在原始图像中绘制轮廓🌺

具体代码如下:

import cv2
img = cv2.imread("flower.jpg")  # 读取原图
cv2.imshow("img", img)  # 显示原图
img = cv2.medianBlur(img, 5)  # 使用中值滤波去除噪点
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)  # 原图从彩图变成单通道灰度图像
t, binary = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)  # 灰度图像转化为二值图像
cv2.imshow("binary", binary)  # 显示二值化图像
# 获取二值化图像中的轮廓极轮廓层次数据
contours, hierarchy = cv2.findContours(binary, cv2.RETR_LIST, cv2.CHAIN_APPROX_NONE)
cv2.drawContours(img, contours, -1, (0, 0, 255), 2)  # 在原图中绘制轮廓
cv2.imshow("contours", img)  # 显示绘有轮廓的图像
cv2.waitKey()  # 按下任何键盘按键后
cv2.destroyAllWindows()  # 释放所有窗体

运行效果如图所示:

OpenCV基础知识(8)— 图形检测,OpenCV:从入门到实战,opencv,人工智能,计算机视觉,目标检测,机器学习

OpenCV基础知识(8)— 图形检测,OpenCV:从入门到实战,opencv,人工智能,计算机视觉,目标检测,机器学习

OpenCV基础知识(8)— 图形检测,OpenCV:从入门到实战,opencv,人工智能,计算机视觉,目标检测,机器学习


🚀2.轮廓的拟合

拟合,是指将平面上的一系列点,用一条光滑的曲线连接起来。轮廓的拟合就是将凹凸不平的轮廓用平整的几何图形体现出来。

下面就为大家介绍如何按照轮廓绘制矩形包围框和圆形包围框。🌴

💥💥2.1 矩形包围框

矩形包围框是指图像轮廓的最小矩形边界。OpenCV提供的boundingRect()方法可以自动计算出轮廓最小矩形边界的坐标和宽高。🐳

boundingRect()方法的语法如下:

retval = cv2.boundingRect(array)

参数说明:

array:轮廓数组

返回值说明:

retval:元组类型,包含四个整数值,分别是最小矩形包围框左上角顶点的横坐标、左上角顶点的纵坐标、矩形的宽和矩形的高。所以也可以写成x,y,w,h = cv2.boundingRect(array)的形式。

案例:

为爆炸图形绘制矩形包围框。具体代码如下:

import cv2
img = cv2.imread("shape2.png")  # 读取原图
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)  # 从彩色图像变成单通道灰度图像
# 将灰度图像进行二值化阈值处理
t, binary = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)
# 获取二值化图像中的轮廓极轮廓层次数据
contours, hierarchy = cv2.findContours(binary, cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE)
x, y, w, h = cv2.boundingRect(contours[0])  # 获取第一个轮廓的最小矩形边框,记录坐标和宽高
cv2.rectangle(img, (x, y), (x + w, y + h), (0, 0, 255), 2)  # 绘制红色矩形
cv2.imshow("img", img)  # 显示绘制结果
cv2.waitKey()  # 按下任何键盘按键后
cv2.destroyAllWindows()  # 释放所有窗体

运行效果如图所示:

OpenCV基础知识(8)— 图形检测,OpenCV:从入门到实战,opencv,人工智能,计算机视觉,目标检测,机器学习

💥💥2.2 圆形包围框

圆形包围框与矩形包围框同理,是图像轮廓的最小圆形边界。OpenCV提供的minEnclosingCircle()方法可以自动计算出轮廓最小圆形边界的圆心和半径。

minEnclosingCircle()方法的语法格式如下:

center,radius = cv2.minEnclosingCircle(points)

参数说明:

points:轮廓数组

返回值说明:

center:元组类型,包含两个浮点值,是最小圆形包围框圆心的横坐标和纵坐标。

radius:浮点类型,最小圆形包围框的半径。

案例:

为爆炸图形绘制圆形包围框。具体代码如下:

import cv2
img = cv2.imread("shape2.png")  # 读取原图
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)  # 从彩色图像变成单通道灰度图像
# 将灰度图像进行二值化阈值处理
t, binary = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)
# 获取二值化图像中的轮廓极轮廓层次数据
contours, hierarchy = cv2.findContours(binary, cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE)
center, radius = cv2.minEnclosingCircle(contours[0])  # 获取最小圆形边框的圆心点和半径
x = int(round(center[0]))  # 圆心点横坐标转为近似整数
y = int(round(center[1]))  # 圆心点纵坐标转为近似整数
cv2.circle(img, (x, y), int(radius), (0, 0, 255), 2)  # 绘制圆形
cv2.imshow("img", img)  # 显示绘制结果
cv2.waitKey()  # 按下任何键盘按键后
cv2.destroyAllWindows()  # 释放所有窗体

 运行效果如图所示:

OpenCV基础知识(8)— 图形检测,OpenCV:从入门到实战,opencv,人工智能,计算机视觉,目标检测,机器学习


🚀3.Canny边缘检测

Canny边缘检测算法是John F.Canny 于1986年开发出来的一个多级边缘检测算法,该算法根据像素的梯度变化寻找图像边缘,最终可以绘制出十分精细的二值边缘图像。🌿

OpenCV将Canny边缘检测算法封装在Canny()方法中,该方法的语法如下:

edgrs = cv2.Canny(image,threshold1,threshold2,apertureSize,L2gradient)

参数说明:

image:检测的原始图像

threshold1:计算过程中使用的第一个阈值,可以是最小阈值,也可以是最大阈值,通常用来设置最小阈值。

threshold2:计算过程中使用的第二个阈值,通常用来设置最大阈值。

apertureSize:可选参数,Sobel算子的孔径大小。

L2gradient:可选参数,计算图像梯度的标识,默认值为False。值为True时会采用更精准的算法进行计算。

返回值说明:

edges:计算后得出的边缘图像,是一个二值灰度图像。

说明:♨️♨️♨️

在开发过程中可以通过调整最小阈值和最大阈值来控制边缘检测的精细程度。当两个阈值都较小的时候,会检测出更多的细节;当两个阈值都较大的时候,会忽略较多的细节。

案例:

使用Canny算法检测美女图像,具体代码如下:

import cv2
img = cv2.imread("1.webp")  # 读取原图
r1 = cv2.Canny(img, 10, 50);  # 使用不同的阈值进行边缘检测

cv2.imshow("img", img)  # 显示原图
cv2.imshow("r1", r1)  # 显示边缘检测结果
cv2.waitKey()  # 按下任何键盘按键后
cv2.destroyAllWindows()  # 释放所有窗体

运行效果如图所示:

OpenCV基础知识(8)— 图形检测,OpenCV:从入门到实战,opencv,人工智能,计算机视觉,目标检测,机器学习

OpenCV基础知识(8)— 图形检测,OpenCV:从入门到实战,opencv,人工智能,计算机视觉,目标检测,机器学习


🚀4.霍夫变换

 霍夫变换是一种特征检测,通过算法识别图像的特征,从而判断出图像中的特殊形状,例如直线和圆。下面就为大家介绍如何检测图像中的直线和圆。

💥💥4.1 直线检测

霍夫直线变换是通过霍夫坐标系的直线与笛卡尔坐标系的点之间的映射关系来判断图像中的点是否构成直线。OpenCV将此封装成了两个方法,分别是cv2.HoughLines()方法和

cv2.HoughLinesP()方法,前者用于检测无线延长的直线,后者用于检测线段。🌼

本节就介绍比较常用的HoughLinesP()方法

HoughLinesP()方法名称最后有一个大写的P,该方法只能检测二值灰度图像,也就是只有两种像素值的黑白图像。方法最后会把找出的所有线段的两个端点坐标保存成一个数组

HoughLinesP()方法的语法如下:

lines = cv2.HoughLinesP(image,rho,theta,threshold,minLineLength,maxLineGap)

参数说明:

image:检测的原始图像

rho:检测直线使用的半径步长,值为1时,表示检测所有可能的半径步长。

theta:搜索直线的角度,值为π/180时,表示检测的所有角度。

threshold:阈值,该值越小,检测的直线就越多。

minLineLength:线段的最小长度,小于该长度的直线不会记录到结果中。

maxLineGap:线段之间的最小距离。

返回值说明:

lines:一个数组,元素为所有检测出的线段,每个线段也是一个数组,内容为线段两个端点的横纵坐标,格式为[[[x1,y1,x2,y2],[x1,y1,x2,y2]]]。

说明:♨️♨️​​​​​​​♨️

使用该方法前需要先为原始图像进行降噪处理,否则会影响检测结果。

案例:

检测笔图像中出现的直线,具体代码如下:

import cv2
import numpy as np

img = cv2.imread("pen.jpg")  # 读取原图
o = img.copy()  # 复制原图
o = cv2.medianBlur(o, 5)  # 使用中值滤波进行降噪
gray = cv2.cvtColor(o, cv2.COLOR_BGR2GRAY)  # 从彩色图像变成单通道灰度图像
binary = cv2.Canny(o, 50, 150)  # 绘制边缘图像
# 检测直线,精度为1,全角度,阈值为15,线段最短100,最小间隔为18
lines = cv2.HoughLinesP(binary, 1, np.pi / 180, 15, minLineLength=100, maxLineGap=18)
for line in lines:  # 遍历所有直线
    x1, y1, x2, y2 = line[0]  # 读取直线两个端点的坐标
    cv2.line(img, (x1, y1), (x2, y2), (0, 0, 255), 2)  # 在原始图像上绘制直线
cv2.imshow("canny", binary)  # 显示二值化边缘图案
cv2.imshow("img", img)  # 显示绘制结果
cv2.waitKey()  # 按下任何键盘按键后
cv2.destroyAllWindows()  # 释放所有窗体

运行效果如图所示:

OpenCV基础知识(8)— 图形检测,OpenCV:从入门到实战,opencv,人工智能,计算机视觉,目标检测,机器学习

OpenCV基础知识(8)— 图形检测,OpenCV:从入门到实战,opencv,人工智能,计算机视觉,目标检测,机器学习

💥💥4.2 圆环检测

霍夫圆环变换的原理与霍夫直线变换类似。OpenCV提供的HoughCircle()方法用于检测图像中的圆,该方法在检测过程中进行两轮筛选:第一轮筛选会找出可能的是圆的圆心坐标,第二轮筛选会计算出这些圆心坐标可能的对应的半径长度。方法最后会将圆心坐标和半径长度封装成一个浮点型数组。🍃

HoughCircle()方法的语法格式如下:

circles = cv2.HoughCircle(image,method,dp,minDist,param1,param2,minRadius,maxRadius)

参数说明:

image:检测的原始图像

method:检测方法

dp:累加器分辨率与原始图像分辨率之比的倒数。值为1时,累加器与原始图像具有相同的分辨率;值为2时,累加器的分辨率为原始图像的1/2。通常使用1作为参数。

minDist:圆心之间的最小距离

param1:可选参数,Canny边缘检测使用的最大阈值。

param2:可选参数,检测圆环结果的投票数。第一轮筛选时投票数超过该值的圆才会进入第二轮筛选。值越大,检测出的圆越小,但越精准。

minRadius:可选参数,圆的最小半径。

maxRadius:可选参数,圆的最大半径。

返回值说明:

circles:一个数组,元素为所有检测出的圆,每个圆也是一个数组,内容为圆心的横、纵坐标和半径长度,格式为[[[x1,y1,r1],[x2,y2,r2]]]。

说明:♨️​​​​​​​♨️​​​​​​​♨️

使用该方法前需要先为原始图像进行降噪处理,否则会影响检测结果。

案例:

绘制硬币图像的圆环和对应圆心,具体代码如下:

import cv2
import numpy as np

img = cv2.imread("coin.jpg")  # 读取原图
o = img.copy()  # 复制原图
o = cv2.medianBlur(o, 5)  # 使用中值滤波进行降噪
gray = cv2.cvtColor(o, cv2.COLOR_BGR2GRAY)  # 从彩色图像变成单通道灰度图像
# 检测圆环,圆心最小间距为70,Canny最大阈值为100,投票数超过25。最小半径为10,最大半径为50
circles = cv2.HoughCircles(gray, cv2.HOUGH_GRADIENT, 1, 70, param1=100, param2=25, minRadius=10, maxRadius=50)
circles = np.uint(np.around(circles))  # 将数组元素四舍五入成整数
for c in circles[0]:  # 遍历圆环结果
    x, y, r = c  # 圆心横坐标、纵坐标和圆半径
    cv2.circle(img, (x, y), r, (0, 0, 255), 3)  # 绘制圆环
    cv2.circle(img, (x, y), 2, (0, 0, 255), 3)  # 绘制圆心
cv2.imshow("img", img)  # 显示绘制结果
cv2.waitKey()  # 按下任何键盘按键后
cv2.destroyAllWindows()  # 释放所有窗体

运行效果如图所示:

OpenCV基础知识(8)— 图形检测,OpenCV:从入门到实战,opencv,人工智能,计算机视觉,目标检测,机器学习


🚀5.总结

总结:

🍀(1)图像的轮廓:先对图像做二值化处理,cv2.findContours()检测轮廓,cv2.drawContours()绘制轮廓。

🍀(2)轮廓的拟合:包括矩形包围框和圆形包围框。

🍀(3)Canny边缘检测:最实用、最简单、效果最好的边缘检测方法。阈值越小,边缘越多。

🍀(4)霍夫变换:包括直线检测和圆环检测。其中,直线检测是检测之前先降噪,再做二值化阈值处理,圆环检测是检测之前先降噪,再转为单通道灰度图像。


OpenCV基础知识(8)— 图形检测,OpenCV:从入门到实战,opencv,人工智能,计算机视觉,目标检测,机器学习文章来源地址https://www.toymoban.com/news/detail-676458.html

到了这里,关于OpenCV基础知识(8)— 图形检测的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Opencv4基于C++基础入门笔记:图像 颜色 事件响应 图形 视频 直方图 Opencv4基于C++的 实时人脸检测

      效果图 ◕‿◕:opencv人脸识别效果图(请叫我真爱粉)✌✌✌先看一下效果图勾起你的兴趣!  文章目录: 一:环境配置搭建 二:图像 1.图像读取与显示 main.cpp  运行结果 2.图像色彩空间转换 2.1 换色彩  test.h  test.cpp main.cpp    运行结果 2.2 照片换背景 test.h        test.

    2024年02月13日
    浏览(54)
  • SVG的一些基础知识,包括SVG坐标系统、支持的几何图形和样式,动画的基础知识,包括基本动画和路径动画

    SVG(可缩放矢量图形)是一种使用XML格式定义的图像格式,它可以将二维图像呈现为任意大小的图像,而不会产生像素化。由于它的矢量设计,SVG成为了实现各种图形和动画的理想平台。在本文中,我们将探讨如何使用SVG实现图形和动画。 在开始之前,让我们首先了解一下

    2024年02月03日
    浏览(57)
  • 第1篇 目标检测概述 —(1)目标检测基础知识

    前言: Hello大家好,我是小哥谈。 目标检测是计算机视觉领域中的一项任务,旨在自动识别和定位图像或视频中的特定目标,目标可以是人、车辆、动物、物体等。目标检测的目标是从输入图像中确定目标的位置,并使用边界框将其标记出来。🎉为了让大家能够牢固地掌握

    2024年02月07日
    浏览(60)
  • OpenCV(一)——图像基础知识

    课程一览: 目录 1.数字图像 1.1 数字图像概念 1.2 数字图像起源

    2024年02月11日
    浏览(45)
  • opencv必会基础知识

    (1)色彩空间变换 (2)像素访问 (3)矩阵的 + -  * / (4)基本图形的绘制 以上的核心知识将会在接下来的部分给大家介绍清楚,并且有实战代码展示。 (1)RGB:是通过对红(R)、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,

    2024年02月03日
    浏览(42)
  • 人脸检测和人脸识别的基础知识

    1. 人脸识别和人脸检测概念 人脸识别 (Face Recognition)是基于人的脸部特征信息进行身份识别的一种生物识别技术。说简单点,人脸识别解决“这是谁的脸”问题。 人脸检测( Face Detection)是指对于任意一幅给定的图像, 采用一定的策略 对其进行搜索以确定其中是否含有人

    2024年02月10日
    浏览(32)
  • 目标检测(1)—— 基础知识和常用数据集

    一张图片,经过网络后得到输出,检测出感兴趣目标的一个位置,比如下图的车在什么地方,狗在什么地方;还要输出相应位置的目标是什么类别的。 目标检测:位置+类别 矩形框:位置 矩形框:类别 eg:人脸检测 把人脸作为目标,就把人脸框起来。 eg:文字检测 把文字

    2024年02月08日
    浏览(40)
  • 【opencv】计算机视觉基础知识

    目录 前言 1、什么是计算机视觉 2、图片处理基础操作 2.1 图片处理:读入图像 2.2 图片处理:显示图像 2.3 图片处理:图像保存 3、图像处理入门基础 3.1 图像成像原理介绍 3.2 图像分类 3.2.1 二值图像 3.2.2灰度图像 3.2.3彩色图像(RGB) 4、像素处理操作 4.1 读取像素 4.2 修改像素

    2024年02月04日
    浏览(66)
  • Opengl入门基础-基础知识

    通过之前的教程,我们已经拥有了开发环境,但是在真正开发程序之前,我们首先了解下Opengl的基本概念。 Opengl是什么? 通常网上会说Opengl是一种规范,一种接口,但是这种说法有点抽象,我们不妨先看看下面这个简单的gl流程 代码中可能有人对GLFW_OPENGL_PROFILE这类参数感到

    2024年02月11日
    浏览(47)
  • 【OpenCV】计算机视觉图像处理基础知识

    目录 前言 推荐 1、OpenCV礼帽操作和黑帽操作 2、Sobel算子理论基础及实际操作 3、Scharr算子简介及相关操作 4、Sobel算子和Scharr算子的比较 5、laplacian算子简介及相关操作 6、Canny边缘检测的原理 6.1 去噪 6.2 梯度运算 6.3 非极大值抑制 6.4 滞后阈值 7、Canny边缘检测的函数及使用

    2024年02月05日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包