opencv图像轮廓检测

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

效果展示:
opencv图像轮廓检测,opencv

代码部分:文章来源地址https://www.toymoban.com/news/detail-652859.html

import cv2 
import numpy as np
img = cv2.imread('C:/Users/ibe/Desktop/picture.PNG',cv2.IMREAD_UNCHANGED)
# 类型转换
img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

# 结构元
kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (3, 3))
# 腐蚀
img = cv2.erode(img, kernel)
# 膨胀
img = cv2.dilate(img, kernel)
# 中值滤波
img = cv2.medianBlur(img, 3)

# 二值化
ret, thresh = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY)
# 计算轮廓
contours, hierarchy = cv2.findContours(thresh , cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)

# 类型转换
img = cv2.cvtColor(img, cv2.COLOR_GRAY2BGR)
# 绘制轮廓
# 1. 一般轮廓
cv2.drawContours(img, contours, -1, (0, 255, 0), 2)
# 2. 边界矩形轮廓
for c in contours:
	x, y, w, h = cv2.boundingRect(c)
	cv2.rectangle(img, (x, y), (x + w, y + h), (0, 255, 0), 2)
# 3. 最小矩形轮廓
for c in contours:
	rect = cv2.minAreaRect(c)
	box = cv2.boxPoints(rect)
	box = np.int0(box)
	cv2.drawContours(img, [box], 0, (0, 0, 255), 2)
# 4. 最小闭圆
for c in contours:
	(x, y), radius = cv2.minEnclosingCircle(c)
	center = (int(x), int(y))
	radius = int(radius)
	cv2.circle(img, center, radius, (255, 0, 0), 2)

# 显示图像
cv2.imshow("img", img)
# 保存图像
cv2.imwrite("img2.png", img)
# 触发等待延时
cv2.waitKey(0)
# 销毁所有窗口
cv2.destroyAllWindows()


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

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

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

相关文章

  • 如何在OpenCV中实现图像的边缘检测和轮廓提取?opencv教程

    在OpenCV中,可以使用边缘检测算法和轮廓提取函数来实现图像的边缘检测和轮廓提取。以下是一种常用的方法: 边缘检测: 在OpenCV中,常用的边缘检测算法包括Canny边缘检测和Sobel算子。 Canny边缘检测: Canny边缘检测是一种广泛使用的边缘检测算法,它能够有效地检测出图像

    2024年02月15日
    浏览(25)
  • C++如何用OpenCV中实现图像的边缘检测和轮廓提取?

    主要实现代码:

    2024年02月07日
    浏览(30)
  • opencv基础49-图像轮廓02-矩特征cv2.moments()->(形状分析、物体检测、图像识别、匹配)

    矩特征(Moments Features)是用于图像分析和模式识别的一种特征表示方法,用来描述图像的形状、几何特征和统计信息。矩特征可以用于识别图像中的对象、检测形状以及进行图像分类等任务。 矩特征通过计算图像像素的高阶矩来提取特征。这些矩可以表示图像的中心、尺度

    2024年02月13日
    浏览(30)
  • opencv-python3 | cv2.findContours()检测图像中物体轮廓

    轮廓可以简单地理解为连接所有连续点(沿物体边界)的曲线,这些点通常具有相同的颜色或强度。 轮廓在图像分析中具有重要意义,是物体形状分析和对象检测和识别的有用工具,是理解图像语义信息的重要依据。 通常,为了提高物体轮廓检测的准确率,首先要将彩色图

    2024年02月05日
    浏览(32)
  • OpenCV快速入门:目标检测——轮廓检测、轮廓的距、点集拟合和二维码检测

    在当今数字化时代,计算机视觉的崛起使得目标检测成为科技领域中的一项关键技术。本文将带您快速入门OpenCV中的目标检测,深入探讨轮廓检测、轮廓的距、点集拟合以及二维码检测等核心概念。 OpenCV,作为一种强大的开源计算机视觉库,为开发者提供了丰富的工具和算法

    2024年01月16日
    浏览(40)
  • c# opencv 找到图像的轮廓,并绘制轮廓

    原图                                                                                结果图                                                                  本意是想去除白色图像周边的几个白色小点,得到轮廓图后,其他都设置为黑色,结果是白点更明

    2024年02月13日
    浏览(70)
  • OpenCV(三十二):轮廓检测

    1.轮廓概念介绍         在计算机视觉和图像处理领域中,轮廓是指在图像中表示对象边界的连续曲线。它是由一系列相邻的点构成的,这些点在边界上连接起来形成一个封闭的路径。 轮廓层级:        轮廓层级(Contour Hierarchy)是指在包含多个轮廓的图像中,轮廓之间的

    2024年02月07日
    浏览(39)
  • openCV实战-系列教程7:轮廓检测2与模板匹配(轮廓检测/轮廓特征/轮廓近似/轮廓边界矩阵/轮廓边界圆/模版匹配)、原理解析、源码解读

    打印一个图片可以做出一个函数: 前面我们计算了这个图片的轮廓:  它的轮廓信息保存在了contours中,取出第一个轮廓,计算相关参数: 打印结果: 8500.5  437.9482651948929 这是分别求出了周长和面积,这里的True表示的是否是闭合的。    如图,第一个图是原图,如果将它的

    2024年02月10日
    浏览(28)
  • OpenCV 10(图像轮廓)

    图像轮廓是具有相同颜色或灰度的连续点的曲线. 轮廓在形状分析和物体的检测和识别中很有用。 轮廓的作用: - 用于图形分析 - 物体的识别和检测 注意点: - 为了检测的准确性,需要先对图像进行** 二值化**或**Canny操作 **。 - 画轮廓时会修改输入的图像, 如果之后想继续使用

    2024年02月09日
    浏览(36)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包