图像处理基础知识(二)—— 中心矩求主轴方向
2015-11-15 20:17
766 查看
本文内容:主要介绍中心矩的定义,以及利用中心矩求取图像主轴方向。
1.4 matlab求取归一化中心矩、hu不变矩和主轴方向
1.4 matlab求取归一化中心矩、hu不变矩和主轴方向
function test % atan(phi) 值域为[-90,90] atan2(y,x) 值域为[-180,180] % 2phi范围为[-180, 180] 因此此处应用atan2 % 所求主轴方向,为与x轴正向最小夹角,夹角在y正象限,phi>0 % y负象限,phi<0 % 使坐标旋转至水平方向,phi>0时,应沿y负旋转, phi<0时,应沿 % y正旋转,因此对于旋转矩阵为: % [cos sin; -sin cos] I = imread('BW6.bmp'); [cm ju] = qijieju(uint8(I)); m00 = cm(1); mu11 = cm(2); mu02 = cm(3); mu20 = cm(4); a = mu20 / m00; b = mu11 / m00; c = mu02 / m00; square = sqrt( 4 * b * b + (a - c) * (a - c) ); %求主轴方法1 theta = atan2( 2 * b, a - c + square )*180/pi %求主轴方法2 angle3=atan2(2*mu11,(mu20-mu02))/2*180/pi end %求不变矩及中心矩 function [cm ju] = qijieju(I0) A=double(I0); [nc,nr]=size(A); [x,y]=meshgrid(1:nr,1:nc); x=x(:); y=y(:); A=A(:); m00=sum(A); if m00==0 m00=eps; end m10=sum(x.*A); m01=sum(y.*A); xmean=m10/m00; %重心 ymean=m01/m00; cm00=m00; %归一化中心矩 cm02=(sum((y-ymean).^2.*A))/(m00^2); cm03=(sum((y-ymean).^3.*A))/(m00^2.5); cm11=(sum((x-ymean).*(y-ymean).*A))/(m00^2); cm12=(sum((x-ymean).*(y-ymean).^2.*A))/(m00^2.5); cm20=(sum((x-xmean).^2.*A))/(m00^2); cm21=(sum((x-xmean).^2.*(y-ymean).*A))/(m00^2.5); cm30=(sum((x-xmean).^3.*A))/(m00^2.5); ju(1)=cm20+cm02; % ju(2)=(cm20-cm02)^2+4*cm11^2; % ju(3)=(cm30-3*cm12)^2+(3*cm21-cm03)^2; % ju(4)=(cm30+cm12)^2+(cm21+cm03)^2; % ju(5)=(cm30-3*cm12)*(cm30+cm12)*((cm30+cm12)^2-3*(cm21+cm03)^2)+(3*cm21-cm03)*(cm21+cm03)*(3*(cm30+cm12)^2-(cm21+cm03)^2); % ju(6)=(cm20-cm02)*((cm30+cm12)^2-(cm21+cm03)^2)+4*cm11*(cm30+cm12)*(cm21+cm03); % ju(7)=(3*cm21-cm03)*(cm30+cm12)*((cm30+cm12)^2-3*(cm21+cm03)^2)+(cm30-3*cm12)*(cm21+cm03)*(3*(cm30+cm12)^2-(cm21+cm03)^2); qijieju= ju;%abs(log(ju)) cm = [cm00 cm11 cm02 cm20]; end
相关文章推荐
- 8.1.6 弹性盒模型(3)
- Scrapy
- 【转载】才德兼备 - 智伯之亡的启示
- 有人说,程序员不配叫工程师!
- 【2015/11/14】 C学习日志_Day15 C的二进制代码分析
- 查找字符串中出现最多的字符和个数--- 正则的方法
- [LeetCode][JavaScript]Longest Increasing Subsequence
- 关于函数名称和库函数名称冲突的故事
- Linux 安装Mysql-实战操作
- WCF远程调用时关闭安全认证的配置
- 自定义RatingBar的背景图片
- WinCE常用调试工具汇总
- C# arcengine 由FeatureClass生成TIN
- Warehouse
- Shell中wc命令的使用
- 构造Gray码的分治算法
- Caffe学习:使用pycaffe读取caffemodel参数
- Android中通过泛型解决findViewById需要强制类型转换的问题
- 【2015/11/11】C学习日志_Day14 可变参函数 递归
- 大道至简读后感