Python图像处理(9):Hu矩
来源:互联网 发布:宁波seo教程 编辑:程序博客网 时间:2024/05/18 15:06
快乐虾
http://blog.csdn.net/lights_joy/
欢迎转载,但请保留作者信息
几何矩是由Hu在1962年提出的,具有平移、旋转和尺度不变性。opencv中关于矩的计算是由C++中的Moments这个类来完成的:
//! raster image momentsclass CV_EXPORTS_W_MAP Moments{public: //! the default constructor Moments(); //! the full constructor Moments(double m00, double m10, double m01, double m20, double m11, double m02, double m30, double m21, double m12, double m03 ); //! the conversion from CvMoments Moments( const CvMoments& moments ); //! the conversion to CvMoments operator CvMoments() const; //! spatial moments CV_PROP_RW double m00, m10, m01, m20, m11, m02, m30, m21, m12, m03; //! central moments CV_PROP_RW double mu20, mu11, mu02, mu30, mu21, mu12, mu03; //! central normalized moments CV_PROP_RW double nu20, nu11, nu02, nu30, nu21, nu12, nu03;};
可以明显地看到它主要包括空间矩,中心矩和中心归一化矩。
一直不太相信几何矩对于植物叶片识别能够起到多大作用,尤其对于遮挡的叶片。不过刚好学习到这里,就试试在Python下计算Hu矩。
采用的图片是这前分割出来的彩色图像:
我们已经得到了它们的二值图像:
我们就以这两张二值图像做为求矩的输入图像。
# -*- coding: utf-8 -*- import cv2import numpy as np#import matplotlib.pyplot as pltdir = 'F:\\projects\\src\\opencv\\images\\cotton\\';# Hu不变矩# 读取棉花图像cotton = cv2.imread(dir + '39.mask.jpg')cotton = cotton[:,:,0] # 这是二值图像,仅取第一个通道cv2.imshow('cotton', cotton)# 读取杂草图像weed = cv2.imread(dir + '47.mask.jpg')weed = weed[:,:,0] # 这是二值图像,仅取第一个通道cv2.imshow('weed', weed)# 计算棉花的矩和Hu矩moments = cv2.moments(cotton)hu_moments = cv2.HuMoments(moments)print('cotton moments:')print(hu_moments)# 计算杂草的矩和Hu矩moments = cv2.moments(weed)hu_moments = cv2.HuMoments(moments)print('weed moments:')print(hu_moments)cv2.waitKey()
得到计算结果:
仅两张图片其实说明不了什么问题,只不过通过上面的代码展示一下用Python计算Hu矩的方式,仅此而已。
0 0
- Python图像处理(9):Hu矩
- 图像处理之图像特征:几何不变矩--Hu矩
- 图像特征_图像矩(Hu矩)
- Hu矩图像轮廓匹配
- Hu矩(转载)
- Hu矩(转载)
- 【图像算法】几何不变矩--Hu矩
- 图像特征:几何不变矩--Hu矩
- 图像和轮廓的匹配(hu矩)
- 图像和轮廓的匹配(hu矩)
- 图像和轮廓匹配(hu矩)
- 图像不变性特征——hu矩
- 图像形状特征(二)--Hu距
- 【图像算法】图像特征:几何不变矩--Hu矩
- Hu矩
- Hu矩
- Hu矩
- Hu矩
- MongoDB 索引构建情况分析、MongoDB 安全
- Ubuntu 14.04.2 LTS samba 配置samba服务
- 【AC自动机】【HDOJ2222】 Keywords Search
- SQLite内存使用情况分析
- STL源码分析之RB-tree结构简析
- Python图像处理(9):Hu矩
- 黑马程序员——Java语言基础(一)
- 包装设计模式
- 数组复习
- 我所理解的设计模式(C++实现)——访问者模式(Visitor Pattern)
- 桌面快捷方式上面出现了蓝色的?号
- Android虚拟机学习总结Dalvik虚拟机进程和线程的创建过程分析
- oc 编译
- spi驱动(基于linux3.4.2)