python+opencv-16 图像轮廓检测和拟合

本文介绍了使用Python和OpenCV进行图像轮廓检测和拟合的过程,包括图像轮廓查找与绘制、周长与面积计算、几何图形的最小外包与拟合,以及霍夫检测的应用,如直线和圆形检测。通过这些技术,可以获取图像目标的大小、位置和方向等信息。
摘要由CSDN通过智能技术生成

图像轮廓检测和拟合

边缘检测只能检测出图像边缘信息,并不能得到一幅图像的整体信息,而图像轮廓是指将边缘信息连接起来形成一个整体。通过对图像轮廓进行操作,可以获取目标图像的大小、位置和方向等信息。

图像轮廓的查找与绘制

图像轮廓由一系列点组成,这些点以某种方式表示图像中的一条曲线。图像的轮廓绘制就是将检测到的边缘信息图像的前景信息进行拟合,从而得到图像的轮廓。

import cv2 as cv

image = cv.imread("lena.jpg")
gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY)

cv.imshow("image", image)

ret, binary = cv.threshold(gray, 127, 255, cv.THRESH_BINARY)

contours, hierarchy = cv.findContours(binary, cv.RETR_EXTERNAL, cv.CHAIN_APPROX_SIMPLE)

image = cv.drawContours(image, contours, -1, (0, 0, 255), 3)

cv.imshow("result", image)

cv.waitKey()
cv.destroyAllWindows()

在这里插入图片描述
提起一张图片的情景信息:

import cv2 as cv
import numpy as np

image = cv.imread("lena.jpg")
gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY)

cv.imshow("image", image)

ret, binary = cv.threshold(gray, 127, 255, cv.THRESH_BINARY)

contours, hierarchy = cv.findContours(binary, cv.RETR_EXTERNAL, cv.CHAIN_APPROX_SIMPLE)

mask = np.zeros(image.shape, np.uint8)

mask = cv.drawContours(mask, contours, -1, (255, 255, 255), -1)

cv.imshow("mask", mask)

logimg = cv.bitwise_and(image, mask)
cv.imshow("logimg", logimg)

cv.waitKey()
cv.destroyAllWindows()

在这里插入图片描述
提取一幅图像的边缘信息:

import cv2 as cv
import numpy as np

image = cv.imread("lena.jpg")
cv.imshow("image", image)

binaryImg = cv.Canny(image, 50, 200)

h = cv.findContours(binaryImg, cv.RETR_TREE, cv.CHAIN_APPROX_NONE)

contours = h[0]

temp = np.ones(binaryImg.shape, np.uint8)*255

cv.drawContours(temp, contours, -1, (0, 255, 0), 1)

cv.imshow("contours", temp)
cv.imshow("canny", binaryImg)

cv.waitKey()
cv.destroyAllWindows()

在这里插入图片描述

轮廓的周长与面积

import cv2 as cv

image = cv.imread("lunkuo.jpeg"
  • 10
    点赞
  • 111
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值