轮廓的矩

简介: 【6月更文挑战第11天】轮廓的矩。

轮廓的矩
轮廓的矩包含了轮廓的各种几何特征,如面积、位置、角度、形状等。
cv2.moments()函数用于返回轮廓的矩,其基本格式如下。
ret=cv2.moments(array[,binaryImage])
参数说明如下。
ret为返回的轮廓矩,是一个字典对象。大多数矩的含义比较抽象,但其中的零阶矩(m00)表示轮廓的面积。
array为表示轮廓的数组。
binaryImage值为True时,会将array对象中的所有非0值设置为1。

轮廓的矩

import cv2
import numpy as np
img=cv2.imread('shape2.jpg') #读取图像
cv2.imshow('original',img) #显示原图像
gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) #将其转换为灰度图像
ret,img2=cv2.threshold(gray,125,255,cv2.THRESH_BINARY) #二值化阈值处理
c,h=cv2.findContours(img2,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE) #查找轮廓
img3=np.zeros(img.shape, np.uint8)+255 #按原图大小创建一幅白色图像
img3=cv2.drawContours(img3,c,-1,(0,0,255),2) #绘制轮廓
cv2.imshow('Contours',img3) #显示轮廓图像
for n in range(len(c)):
m=cv2.moments(c[n])
print('轮廓%s的矩:'%n,m) #输出轮廓矩
print('轮廓%s的面积:'%n,m['m00']) #输出轮廓面积
cv2.waitKey(0) #按任意键结束等待
cv2.destroyAllWindows() #关闭所有窗口

目录
相关文章
|
1月前
|
计算机视觉 Python
透视变换
【5月更文挑战第15天】透视变换。
25 1
|
3天前
|
Python
轮廓的矩
【6月更文挑战第25天】轮廓的矩。
13 1
|
17天前
|
SDN Python
轮廓的近似多边形
【6月更文挑战第11天】轮廓的近似多边形。
13 4
|
17天前
|
索引 Python
轮廓的凸包
【6月更文挑战第11天】轮廓的凸包。
12 3
|
1月前
|
计算机视觉
仿射变换
【5月更文挑战第12天】仿射变换。
62 11
|
1月前
|
存储 算法
轮廓发现
轮廓发现
19 5
|
1月前
|
算法
[Halcon&拟合] 直线、矩形和圆的边缘提取
[Halcon&拟合] 直线、矩形和圆的边缘提取
242 0
|
存储 API 图形学
OpenCV_11 轮廓检测:图像的轮廓+绘制轮廓+轮廓近似+边界矩形+椭圆拟合+直线拟合
轮廓检测指检测图像中的对象边界,更偏向于关注上层语义对象。如OpenCV中的findContours()函数, 它会得到每一个轮廓并以点向量方式存储,除此也得到一个图像的拓扑信息,即一个轮廓的后一个轮廓、前一个轮廓等的索引编号。
1272 0
|
计算机视觉
灰度直方图及直方图均衡化
灰度直方图及直方图均衡化
75 0
|
资源调度 计算机视觉
CV10 图像模糊(均值、高斯、中值、双边滤波)
当我们只想得到感兴趣的物体时,通过图像模糊,可以将那些尺寸和亮度较小的物体过滤掉,较大的物体则易于检测。除了降低噪声,这就是图像平滑(模糊)的另一个重要应用:减少噪点,突出ROI,以便目标提取。
265 0