我正在使用以下代码来拼接输入图像.由于未知原因输出结果是垃圾!似乎单应矩阵是错误的(或者被错误地影响),因为变换的图像就像一个"被利用的星"!我已经评论了我认为是问题根源但我无法实现的部分.任何帮助或观点都是适当的!
祝你有美好的一天,阿里
void Stitch2Image(IplImage *mImage1, IplImage *mImage2)
{
// Convert input images to gray
IplImage* gray1 = cvCreateImage(cvSize(mImage1->width, mImage1->height), 8, 1);
cvCvtColor(mImage1, gray1, CV_BGR2GRAY);
IplImage* gray2 = cvCreateImage(cvSize(mImage2->width, mImage2->height), 8, 1);
cvCvtColor(mImage2, gray2, CV_BGR2GRAY);
// Convert gray images to Mat
Mat img1(gray1);
Mat img2(gray2);
// Detect FAST keypoints and BRIEF features in the first image
FastFeatureDetector detector(50);
BriefDescriptorExtractor descriptorExtractor;
BruteForceMatcher<L1<uchar> > descriptorMatcher;
vector<KeyPoint> keypoints1;
detector.detect( img1, keypoints1 );
Mat descriptors1;
descriptorExtractor.compute( img1, keypoints1, descriptors1 );
/* Detect FAST keypoints and …Run Code Online (Sandbox Code Playgroud) 我有一个指向图像的指针:
IplImage *img;
Run Code Online (Sandbox Code Playgroud)
已转换为 Mat
Mat mt(img);
Run Code Online (Sandbox Code Playgroud)
然后,将Mat其发送到获取对Mat输入的引用的函数void f(Mat &m);
f(mt);
Run Code Online (Sandbox Code Playgroud)
现在我想将Mat数据复制回原始图像.
你有什么建议吗?
最好的阿里