首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >形状转换器和接口OpenCV3.0

形状转换器和接口OpenCV3.0
EN

Stack Overflow用户
提问于 2015-08-25 22:42:28
回答 1查看 1.2K关注 0票数 2

我正在尝试使用OpenCV3.0的新的形状转换器和接口。不幸的是,它并没有像预期的那样工作。为了确保不会因为这个原因而产生任何奇特的扭曲和奇怪的结果,我初始化了一个转换,其中根本不应该发生任何事情。但是,测试点的变换输出总是0,0,并且扭曲的图像始终是完全灰色的。欢迎任何可能出错的建议。

代码语言:javascript
复制
int main(void){

 Mat img1 = imread("C:\\opencv\\sources\\samples\\data\\graf1.png", IMREAD_GRAYSCALE);
 std::vector<cv::Point2f> points1, testpoints;
 vector<DMatch> good_matches;
 Mat respic, resmat;

 points1.push_back(Point(0, 0)); //Corners 800x600 pic
 points1.push_back(Point(799, 0));
 points1.push_back(Point(799, 599));
 points1.push_back(Point(0, 599));

 Mat pointmatrix1(points1);

 good_matches.push_back(DMatch(0, 0, 0));
 good_matches.push_back(DMatch(1, 1, 0));
 good_matches.push_back(DMatch(2, 2, 0));
 good_matches.push_back(DMatch(3, 3, 0));

 testpoints.push_back(Point(250, 250));
 Mat testpointsmat(testpoints);

 // Apply TPS
 Ptr<ThinPlateSplineShapeTransformer> mytps = createThinPlateSplineShapeTransformer(0);
 mytps->estimateTransformation(pointmatrix1, pointmatrix1, good_matches); // Using same pointmatrix nothing should change in res
 mytps->applyTransformation(testpointsmat, resmat);

 cout << "pointmatrix1 = " << endl << " " << pointmatrix1 << endl << endl;
 cout << "testpointsmat = " << endl << " " << testpointsmat << endl << endl;
 cout << "resmat = " << endl << " " << resmat << endl << endl; //Always [0,0] ?

 imshow("img1", img1); // Just to see if I have a good picture

 mytps->warpImage(img1, respic);

 imwrite("Tranformed.png", respic);
 imshow("Tranformed", respic); //Always completley grey ?

 waitKey(0);

 return 0;
}
EN

回答 1

Stack Overflow用户

发布于 2015-08-26 00:05:00

不要问我为什么,但如果我添加这两行,它就可以工作。

代码语言:javascript
复制
// Apply TPS
transpose(pointmatrix1, pointmatrix1); // ADD
transpose(testpoints, testpoints); // ADD
Ptr<ThinPlateSplineShapeTransformer> mytps = createThinPlateSplineShapeTransformer(0);

现在,在源code here中有一些奇怪的东西,为什么是cols而不是rows。

by LBerger

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32207085

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档