c++-我调用opencv中的函数计算出的hu矩没有旋转、缩放不变性,请大家帮我看下程序哪出问题了。

问题描述

我调用opencv中的函数计算出的hu矩没有旋转、缩放不变性,请大家帮我看下程序哪出问题了。

#include
#include
#include

using namespace std;
using namespace cv;

int main(int argc, char *argv[])
{//读入图片预处理
Mat image=imread("F:vs2010 project21.jpg");
//image.create(480, 640, CV_8UC1);
namedWindow("show", CV_WINDOW_AUTOSIZE);
imshow("show",image);
cvtColor(image,image,CV_BGR2GRAY);
Mat img2;
threshold(image,img2,100,255,CV_THRESH_BINARY);
//vector> contours;
// find
//findContours(img2,contours,CV_RETR_EXTERNAL,CV_CHAIN_APPROX_NONE);
// draw
// Mat result(image.size(),CV_8U,Scalar(0));
//drawContours(result,contours,-1,Scalar(255),2);
//namedWindow("show2", CV_WINDOW_AUTOSIZE);
//imshow("show2",result);

//旋转缩放
cv::Point2f center = cv::Point2f(image.cols / 2, image.rows / 2); // 旋转中心

double angle = 0; // 旋转角度

double scale = 1.0; // 缩放尺度

cv::Mat rotateMat;
rotateMat = cv::getRotationMatrix2D(center, angle, scale);  

cv::Mat rotateImg;
cv::warpAffine(img2, rotateImg, rotateMat, image.size());
cv::namedWindow("show2", CV_WINDOW_AUTOSIZE);
cv::imshow("show2",rotateImg);

//求HU矩

IplImage img3 = rotateImg;
cvShowImage("src",&img3);
CvMoments moments;
CvHuMoments hu;
cvMoments(&img3,&moments,2);
cvGetHuMoments(&moments, &hu);
//cout<<hu.hu1<<"/"<<hu.hu2<<"/"<<hu.hu3<<"/"<<hu.hu4<<"/"<<hu.hu5<<"/"<<hu.hu6<<"/"<<hu.hu7<<"/"<<"/"<<endl;
ofstream outfile;
outfile.open("F:\vs2010 project2\tiquHU2\hu.txt",ios::app); //存放数据的文件名
if(outfile.is_open())
{
    outfile<<hu.hu1<<"/"<<hu.hu2<<"/"<<hu.hu3<<"/"<<hu.hu4<<"/"<<hu.hu5<<"/"<<hu.hu6<<"/"<<hu.hu7<<"/"<<"/"<<endl;  //写入数据
     outfile.close();
}
else
{
   cout<<"不能打开文件!"<<endl;
}
cvWaitKey();

}


时间: 2024-10-13 12:12:05

c++-我调用opencv中的函数计算出的hu矩没有旋转、缩放不变性,请大家帮我看下程序哪出问题了。的相关文章

matchtample-在类中调用 opencv 的matchTample函数时,出现错误,求大神指点

问题描述 在类中调用 opencv 的matchTample函数时,出现错误,求大神指点 上图的代码出现在我的LightDetect类的一个类函数里,但是我新建一个工程,直接在main函数里调用matchTample是没问题的.是不是因为在类函数里不能分配太多内存?希望各位大神多多指点 解决方案 http://www.pudn.com/downloads635/sourcecode/graph/opencv/detail2575751.html

link中是不是只能调用sqlfunctions中的函数?能不能给sqlfunctions增加函数?

问题描述 link中是不是只能调用sqlfunctions中的函数?能不能给sqlfunctions增加函数? link中是不是只能调用sqlfunctions中的函数?能不能给sqlfunctions增加函数? 解决方案 可以调用自定义函数,不过前提是函数要在sql里面实现 参考:http://www.cnblogs.com/lyj/archive/2008/03/19/1112356.html 否则只能先用AsEnumerable转换成Linq to Objects,再执行.

在CPP中调用Jscript中的函数

js|jscript|函数 在CPP中调用Jscript中的函数   在C++中调用Jscript的函数非常简单,Windows提供了一个msscript.ocx的控件,利用这个控件可以直接操作Jscript: 执行一段Jscript脚本,或者调用指定的函数.我写了一个简单的例子:   l         导入msscript.ocx.下面这条指令会在项目目录中生成msscript.tli和msscript.tlh两个文件,里面有msscript.ocx中所有接口的描述和IID的定义. #imp

利用VC调用动态链接库中的函数

自从微软推出16位的Windows操作系统起,此后每种版本的Windows操作系统都非常依赖于动态链接库(DLL)中的函数和数据,实际上Windows操作系统中几乎所有的内容都由DLL以一种或另外一种形式代表着,例如显示的字体和图标存储在GDI DLL中.显示Windows桌面和处理用户的输入所需要的代码被存储在一个User DLL中.Windows编程所需要的大量的API函数也被包含在Kernel DLL中.在Windows操作系统中使用DLL有很多优点,最主要的一点是多个应用程序.甚至是不同

java 某个类的几个对象,这些对象调用类中一个函数,是各自拥有自己的函数代码还是使用同一段代码?

问题描述 1.java 某个类的几个对象,这些对象调用类中一个函数(普通的函数),是各自拥有自己的函数代码还是使用同一段代码?2.java 继承中,子类从父类得到一些普通函数,这些函数的代码,是子类自己独自拥有一份还是和父类使用同一段函数代码.3.第一次发帖,积分什么的不会搞,貌似自己也没有积分,呵呵,大家包涵! 解决方案 引用1.java 某个类的几个对象,这些对象调用类中一个函数(普通的函数),是各自拥有自己的函数代码还是使用同一段代码?这几个对象调用的当然是同一段代码了.jvm中有一个ja

python学习-Python如何调用utilitytypes中的函数,急求!

问题描述 Python如何调用utilitytypes中的函数,急求! Python如何调用utilitytypes中的函数,急求,调用格式是什么,求大侠帮助,谢谢,急!!!!!! 解决方案 http://blog.163.com/xychenbaihu@yeah/blog/static/1322296552014829103732900/ 解决方案二: C++调用Python函数C++中调用python函数Python调用PHP的函数

linux驱动-linux 用户态调用驱动中的函数返回-1

问题描述 linux 用户态调用驱动中的函数返回-1 /*****************驱动代码***************/#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #incl

javascript-请问如何调用对象中的函数

问题描述 请问如何调用对象中的函数 这里有个集合,请问集合里面可以有函数吗?像下面这样 html: <input id="name" value=""> jsp: aa = { change:function() { $("#name").value = '已发送'; } } 请问可以这样写吗?如果这样写是对的,那么请问该如何调用这个函数呢?当我用aa.change()或者aa.change的时候,查看错误信息是"undef

各位帮我看下VB调用oracle存储过程的一个异常

问题描述 各位帮我看下VB调用oracle存储过程的一个异常 接了一个接口的活,VB写的,调用第三方提供的存储过程出现一个异常,如下:System.Data.OleDb.OleDbException: 未指定的错误 at System.Data.OleDb.OleDbCommand.ProcessResults(Int32 hr) at System.Data.OleDb.OleDbCommand.InitializeCommand(CommandBehavior behavior Boolea