找出图像轮廓
contours, hierarchy = cv.findContours(thresh, 3, 2)

画出图像轮廓
cnt = contours[1]
cv.drawContours(img_color1, [cnt], 0, (0, 0, 255), 2)

计算轮廓面积
area = cv.contourArea(cnt) #cnt:轮廓
print(area)

计算轮廓周长
perimeter = cv.arcLength(cnt, True) #参数2:表示轮廓是否封闭
print(perimeter)

图像矩
M = cv.moments(cnt)
print(M)
print(M[‘m00’]) # 轮廓面积
cx, cy = M[‘m10’] / M[‘m00’], M[‘m01’] / M[‘m00’] # 轮廓质心
print(cx, cy)

图像外接矩形
x, y, w, h = cv.boundingRect(cnt) # 外接矩形
cv.rectangle(img_color1, (x, y), (x + w, y + h), (0, 255, 0), 2)

最小外接矩形
rect = cv.minAreaRect(cnt) # 最小外接矩形
box = np.int0(cv.boxPoints(rect)) # 矩形的四个角点并取整
cv.drawContours(img_color1, [box], 0, (255, 0, 0), 2)

最小外接圆
(x, y), radius = cv.minEnclosingCircle(cnt)
(x, y, radius) = map(int, (x, y, radius)) # 这也是取整的一种方式噢
cv.circle(img_color2, (x, y), radius, (0, 0, 255), 2)

拟合椭圆
ellipse = cv.fitEllipse(cnt)
cv.ellipse(img_color2, ellipse, (0, 255, 0), 2)

实验:计算下图中数字1的面积、轮廓周长,绘制数字1的外接矩形、最小外接矩形、最小外接圆、拟合椭圆

import cv2 as cv
import numpy as np# 载入手写数字图片
img = cv.imread('handwriting.jpg', 0)
# 将图像二值化
_, thresh = cv.threshold(img, 0, 255, cv.THRESH_BINARY_INV + cv.THRESH_OTSU)
contours, hierarchy = cv.findContours(thresh, 3, 2)# 创建出两幅彩色图用于绘制
img_color1 = cv.cvtColor(img, cv.COLOR_GRAY2BGR)
img_color2 = np.copy(img_color1)
# 创建一幅彩色图像用作结果对比
img_color = np.copy(img_color1)# 计算数字1的轮廓特征
cnt = contours[1]
cv.drawContours(img_color1, [cnt], 0, (0, 0, 255), 2)# 1.轮廓面积
area = cv.contourArea(cnt)  # 6289.5
print(area)# 2.轮廓周长
perimeter = cv.arcLength(cnt, True)  # 527.4041
print(perimeter)# 3.图像矩
M = cv.moments(cnt)
print(M)
print(M['m00'])  # 轮廓面积
cx, cy = M['m10'] / M['m00'], M['m01'] / M['m00']  # 轮廓质心
print(cx, cy)# 4.图像外接矩形和最小外接矩形
x, y, w, h = cv.boundingRect(cnt)  # 外接矩形
cv.rectangle(img_color1, (x, y), (x + w, y + h), (0, 255, 0), 2)rect = cv.minAreaRect(cnt)  # 最小外接矩形
box = np.int0(cv.boxPoints(rect))  # 矩形的四个角点并取整
cv.drawContours(img_color1, [box], 0, (255, 0, 0), 2)# 5.最小外接圆
(x, y), radius = cv.minEnclosingCircle(cnt)
(x, y, radius) = map(int, (x, y, radius))  # 这也是取整的一种方式噢
cv.circle(img_color2, (x, y), radius, (0, 0, 255), 2)# 6.拟合椭圆
ellipse = cv.fitEllipse(cnt)
cv.ellipse(img_color2, ellipse, (0, 255, 0), 2)result = np.hstack((img_color,img_color1,img_color2))
cv.imshow('result',result)
cv.waitKey(0)
cv.destroyAllWindows()

实验结果


opencv 图像轮廓特征 图像面积,轮廓周长,外接矩形、最小外接矩形、最小外接圆、拟合椭圆相关推荐

  1. 通过MATLAB计算不规则图像的面积,周长,圆度,矩形度,伸长度

    close all;clear all;clc %N=4提取的四个特征:面积,周长,紧致度,离心率 %N=5提取的五个特征:面积,周长,圆度,矩形度,伸长度 N=5; Feature=zeros(15 ...

  2. 基于形态学处理的不规则形状图像的几何参数统计,包括输出面积,周长,圆度,矩形度,伸长度

    up目录 一.理论基础 二.核心程序 三.测试结果 一.理论基础 形态学是图像处理中应用最为广泛的技术之一,主要用于从图像中提取对表达和描绘区域形状有意义的图像分量,使后续的识别工作能够抓住目标对象最 ...

  3. 图像金字塔原理与轮廓识别检测

    图像金字塔是图像多尺度表达的一种,是一种以多分辨率来解释图像的有效但概念简单的结构.一幅图像的图像金字塔是一系列以金字塔形状(自下而上)逐步降低,且来源于同一张原始图的图像分辨率集合.其通过梯次向下采 ...

  4. opencv findContours()轮廓特征分析大全(求面积、周长、几何矩、质心、凸包、最小外接矩形、最小外接三角形、最小外接椭圆等)

    文章目录 前言 一.效果 二.opencv对应函数介绍 1.轮廓面积 2.轮廓周长 3.轮廓几何矩 4.轮廓的最大外接矩形 5.轮廓的凸包 6.轮廓的最小外接矩形 7.轮廓的最小外接三角形 8.轮廓的 ...

  5. OpenCV:07图像轮廓

    图像轮廓 什么是图形轮廓 查找轮廓 绘制轮廓 计算轮廓的面积和周长 轮廓面积 轮廓周长 多边形逼近 凸包 轮廓拟合 外接矩形 最小外接矩形 最大外接矩形 外接圆 边缘检测`Canny` 霍夫变换 直线 ...

  6. OpenCV中的图像处理中

    图像金字塔 一般情况下,我们要处理是一副具有固定分辨率的图像.但是有些情况下,我们需要对同一图像的不同分辨率的子图像进行处理.比如,我们要在一幅图像中查找某个目标,比如脸,我们不知道目标在图像中的尺寸 ...

  7. 圆的面积和周长的关系

    圆的面积和周长的关系 采用外接多边形的方法逐渐逼近, 面积=1/2*R*周长.其中将周长切成一块块很小的段,将段的两端与中心连接构成三角形,即1/2*R*@s,合起来就是1/2*R*周长为pi*R*R ...

  8. CAD绘图技巧:快速测量CAD图纸中图形的面积与周长

    浩辰CAD软件对于计算CAD图纸的面积与周长有很多方法,而且通常是可以同时计算面积与周长.但不同的方法,有不同的侧重点,甚至其使用范围也有所不同,这些都会影响CAD设计师们的绘图效率.下面,小编将为大 ...

  9. cad单位_CAD绘图技巧:快速测量CAD图纸中图形的面积与周长

    浩辰CAD软件对于计算CAD图纸的面积与周长有很多方法,而且通常是可以同时计算面积与周长.但不同的方法,有不同的侧重点,甚至其使用范围也有所不同,这些都会影响CAD设计师们的绘图效率.下面,小编将为大 ...

最新文章

  1. 《Spring 5 官方文档》26. JMS(二)
  2. PHP框架半透明,CSS设定一个元素半透明
  3. 适用于WinForm的一个定时器类
  4. 2018-2019-1 20165211 实验四 外设驱动程序设计
  5. libjpeg: cannot open
  6. 强烈推荐:给去美国的新生说几句(转载),超实用
  7. web前端学习笔记(二)---Django
  8. 根号x_8.八年级数学:根号(2a1)=12a,怎么求a的取值范围?二次根式
  9. 100+诡异的数据集,20万Eclipse Bug、死囚遗言等
  10. pyinstaller 打包错误集锦
  11. element ui的时间选择器
  12. 关于PMBus一些知识
  13. 对测试开发工程师的理解
  14. 如何批量重命名,文件批量重命名方法介绍
  15. 云业务“探路” 中国联通成立产业互联网子公司
  16. Linux在线词典问题,linux中goldendict发声词典播放报错问题解决方案
  17. 谈谈如何判断一个Pop序列是否是一个Push序列的Pop顺序
  18. 重装战姬服务器维护,重装战姬2020年9月10日更新维护公告重装战姬2020年9月10日更新了什么 - 量产资源网...
  19. android模拟器pc版怎么玩,原神电脑版安卓模拟器怎么使用,电脑上怎么玩原神手游...
  20. 文丘里洗涤除尘器理论应用实训教学QY-HJGC04

热门文章

  1. 如何系统的自学python-如何系统的学习python?
  2. python工资一般多少大专学历-这个面试官真霸气 不收大专程序员
  3. micropython和python区别-MicroPython与Python速度对比
  4. 用python画简单的图案-使用 Python Turtle 设计简单而又美丽的图形
  5. 自学python买什么书比较好-python入门学习哪个书比较好(python视频教程知乎)
  6. atxserver运行没有反应_关于厌氧反应器的酸化现象与恢复措施!
  7. vue中使用vuex结合sessionStorage做的登录功能
  8. cart算法_ID3、C4.5、CART决策树算法
  9. Centos安装桌面系统并设置成默认启动
  10. 大字段 CLOB/BOLB与String互转