Python Opencv实践 - 图像的距(Moments,Hu Moments)

参考资料:​​​​​​矩特征---OpenCV-Python开发指南(25)_cv2.moments_李元静的博客-CSDN博客

探究opencv中的moments函数和HuMoments函数_opencv moment_傲笑风的博客-CSDN博客

复制代码
import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt


img = cv.imread("../SampleImages/stars.png", cv.IMREAD_GRAYSCALE)
plt.imshow(img, cmap=plt.cm.gray)

#直接计算灰度图的距
#cv.moments(array, binaryImage=False)
#array:输入的数组,可以是灰度图像或二维数组,比如轮廓提取结果
#binaryImage:默认False,若为True,则所有非零的像素会按值1对待,
#            也就是相当于对图像进行了二值化,阈值为1,次参数仅对图像生效
#参考资料:https://blog.csdn.net/liyuanjinglyj/article/details/113916287
img_gray_moments = cv.moments(img)
print("Image Moments:\n", img_gray_moments)
#计算灰度图的Hu距
#cv.HuMoments(moments)
#参考资料:https://blog.csdn.net/Caesar6666/article/details/103257632
img_gray_huMoments = cv.HuMoments(img_gray_moments)
print("Image HuMoments:\n", img_gray_huMoments)

#转换为二值图
ret,img_bin = cv.threshold(img, 127, 255, cv.THRESH_BINARY)
#提取轮廓
contours,hierarchy = cv.findContours(img_bin, 1, 2)
#计算轮廓的Hu距
for i in range(len(contours)):
    contour_moments = cv.moments(contours[i])
    contour_huMoments = cv.HuMoments(contour_moments)
    print("Contour HuMoments", str(i), ":\n", contour_huMoments)

相关推荐
砚底藏山河1 分钟前
【量化纯GET实战 #23】多股票相关性:用收益率看板块联动
java·数据库·python·金融·数据分析
阿童木写作6 分钟前
跨境电商翻译工具推荐:批量图片翻译+视频字幕实时翻译
人工智能·python·音视频
晶捷软件7 分钟前
晶捷智能:集团型制造企业ERP如何实现多工厂统一管控
大数据·人工智能·python·制造
oyguyteggytrrwwwrt18 分钟前
闵可夫斯基差演示
python
智购科技无人售货机工厂店23 分钟前
2026自动售货机大屏交互设计原则:从信息层级到视觉动线的工程实践~YH
运维·python·单片机·嵌入式硬件·自动化·交互
quantdash_cc28 分钟前
量化数据源怎么选:稳定性、实时性和数据完整性到底该如何权衡?
开发语言·python·数据分析·量化交易·股票数据·quantdash
萧瑟余晖36 分钟前
Java深入解析篇五十四之对象模型详解
java·开发语言
hfywmsj1 小时前
广州餐饮铺位招租数据分析:选址权重模型与租金评估实操
人工智能·python·数据分析·广州餐饮铺位招租
张文是假的啊1 小时前
Java | record | Controller逻辑
java·开发语言
cui_ruicheng1 小时前
FastAPI 应用开发(一):FastAPI、路由参数与交互式 API 文档
python·fastapi