首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 平面设计 > 图形图像 >

mfc怎样应用opencv求出hu不变矩?初学乍练,求基本的操作流程,多谢

2012-03-03 
mfc怎样应用opencv求出hu不变矩?初学乍练,求基本的操作流程,谢谢!如题,怎样用mfc结合opencv求出hu不变矩?

mfc怎样应用opencv求出hu不变矩?初学乍练,求基本的操作流程,谢谢!
如题,怎样用mfc结合opencv求出hu不变矩?

如果可以的话,哪位可以好心给我提示一下不用opencv,自己编写函数实现求不变矩的代码。我查了很多资料,可都是给出的一些理论的算法,没有代码,可是算法我还没学,让我自己变成代码很困难。

我打算是先用opencv的函数实现了,然后参考它的代码把自己的代码编出来,不知可不可行。。。

我刚刚接触图像处理,希望大家可以说的基础点,O(∩_∩)O谢谢!

分就这么多了,希望大家可以帮忙O(∩_∩)O~

[解决办法]

C/C++ code
CvMoments moments;cvMoments(img,&moments,1);CvHuMoments hu;cvGetHuMoments(&moments,&hu);
[解决办法]
opencv有求矩的相应函数,也可以去matlab中文论坛看看,那上面有矩的matlab例子
[解决办法]
hu不变矩 的识别效果不是最好的 ,不建议使用,但是你如果学习的话 ,可是试试
[解决办法]
以前写的一个函数
//轮廓矩
void COpenCVTest::TestMoment()
{
CvRect r;
r.x = 120;
r.y = 100;
r.width = 20;
r.height = 20;
CvMoments m;
CvMat mat;

IplImage* src;

//8位图 必须为灰度图像 
src = cvLoadImage("c:\\自然图2.bmp",0);

CvArr *arr;
arr = cvGetSubRect(src, &mat, r);

//获取矩
cvMoments(arr, &m, 0);

//获取空间矩
double m00 = cvGetSpatialMoment(&m,0,0);

//获取hu不变矩
CvHuMoments hu;
cvGetHuMoments(&m, &hu);

CString str;
str.Format("空间矩: m00 = %f \n Hu不变矩:h1 = %f, h2 = %f, h3 = %f, h4 = %f, h5 = %f, h6 = %f, h7 = %f, ",
m00,hu.hu1,hu.hu2,hu.hu3,hu.hu4,hu.hu5,hu.hu6,hu.hu7);
AfxMessageBox(str);

cvReleaseImage(&src);
cvWaitKey(0);
}
[解决办法]
恩,hu矩基本上是鸡肋!效果不是很好!

热点排行