OpenCV3.1版本 Visual Studio 2015版本 把两幅残缺的眼底视网膜图像拼接成一副完整的(程序运行时间有点长,耐心等待)
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
..A..H. 36352 2018-05-09 11:18 视网膜图片拼接.vsFLANN matchv14.suo
文件 7895268 2014-07-22 13:41 视网膜图片拼接FLANN match 01.png
文件 7565546 2014-07-22 13:41 视网膜图片拼接FLANN match 02.png
文件 7380 2018-04-08 10:13 视网膜图片拼接FLANN matchFLANN match.vcxproj
文件 945 2018-04-08 10:13 视网膜图片拼接FLANN matchFLANN match.vcxproj.filters
文件 5347 2018-07-05 14:37 视网膜图片拼接FLANN matchmain.cpp
文件 1189 2018-07-05 14:40 视网膜图片拼接FLANN matchx64DebugFLANN match.Build.CppClean.log
文件 1076 2018-07-05 14:40 视网膜图片拼接FLANN matchx64DebugFLANN match.log
文件 770 2018-07-05 14:40 视网膜图片拼接FLANN matchx64DebugFLANN match.tlogCL.command.1.tlog
文件 37710 2018-07-05 14:40 视网膜图片拼接FLANN matchx64DebugFLANN match.tlogCL.read.1.tlog
文件 796 2018-07-05 14:40 视网膜图片拼接FLANN matchx64DebugFLANN match.tlogCL.write.1.tlog
文件 247 2018-07-05 14:40 视网膜图片拼接FLANN matchx64DebugFLANN match.tlogFLANN match.lastbuildstate
文件 3444 2018-07-05 14:40 视网膜图片拼接FLANN matchx64DebugFLANN match.tloglink.command.1.tlog
文件 9844 2018-07-05 14:40 视网膜图片拼接FLANN matchx64DebugFLANN match.tloglink.read.1.tlog
文件 782 2018-07-05 14:40 视网膜图片拼接FLANN matchx64DebugFLANN match.tloglink.write.1.tlog
文件 978077 2018-07-05 14:40 视网膜图片拼接FLANN matchx64Debugmain.obj
文件 1141760 2018-07-05 14:40 视网膜图片拼接FLANN matchx64Debugvc140.idb
文件 2289664 2018-07-05 14:40 视网膜图片拼接FLANN matchx64Debugvc140.pdb
文件 4209 2018-07-05 14:38 视网膜图片拼接FLANN matchx64ReleaseFLANN match.log
文件 790 2018-07-05 14:38 视网膜图片拼接FLANN matchx64ReleaseFLANN match.tlogCL.command.1.tlog
文件 37710 2018-07-05 14:38 视网膜图片拼接FLANN matchx64ReleaseFLANN match.tlogCL.read.1.tlog
文件 600 2018-07-05 14:38 视网膜图片拼接FLANN matchx64ReleaseFLANN match.tlogCL.write.1.tlog
文件 249 2018-07-05 14:38 视网膜图片拼接FLANN matchx64ReleaseFLANN match.tlogFLANN match.lastbuildstate
文件 2 2018-07-05 14:38 视网膜图片拼接FLANN matchx64ReleaseFLANN match.tloglink.command.1.tlog
文件 2 2018-07-05 14:38 视网膜图片拼接FLANN matchx64ReleaseFLANN match.tloglink.read.1.tlog
文件 2 2018-07-05 14:38 视网膜图片拼接FLANN matchx64ReleaseFLANN match.tloglink.write.1.tlog
文件 0 2018-07-05 14:38 视网膜图片拼接FLANN matchx64ReleaseFLANN match.tlogunsuccessfulbuild
文件 3757216 2018-07-05 14:38 视网膜图片拼接FLANN matchx64Releasemain.obj
文件 1953792 2018-07-05 14:38 视网膜图片拼接FLANN matchx64Releasevc140.pdb
文件 1315 2018-04-08 09:24 视网膜图片拼接FLANN match.sln
............此处省略21个文件信息
#include
#include
#include
using namespace std;
using namespace cv;
using namespace cv::xfeatures2d;
int main()
{
Mat img1 img2;
img2 = imread(“001.png“);
img1 = imread(“002.png“);
int minHessian = 1000;
//Ptr detector = SIFT::create(minHessian);
Ptr detector = SIFT::create(200030.000000000410.01.5);
vector keypoint1;
vector keypoint2;
Mat descriptor1 descriptor2;
//detector->detect(img1 keypoint1);
detector->detectAndCompute(img1 Mat() keypoint1 descriptor1);
detector->detectAndCompute(img2 Mat() keypoint2 descriptor2);
//Mat copy_img1 = img1.clone();
//Mat copy_img2 = img2.clone();
Mat img_keyPoint1;
//Mat img_keyPoint2;
drawKeypoints(img1 keypoint1 img_keyPoint1 Scalar::all(-1) DrawMatchesFlags::DRAW_RICH_KEYPOINTS);
resize(img_keyPoint1 img_keyPoint1 Size(1280 960));
imshow(“jieguo“ img_keyPoint1);
//特征匹配
double t = (double)getTickCount();
FlannbasedMatcher matcher;
vector matches;
matcher.match(descriptor1 descriptor2 matches);
double minDist = 1000;
double maxDist = 0;
for (int i = 0; i < descriptor1.rows; i++)
{
double dist = matches[i].distance;
if (dist < minDist)
minDist=dist;
if (dist > maxDist)
maxDist = dist;
}
printf(“minDist Distance: %f
“ minDist);
printf(“maxDist Distance: %f
“ maxDist);
vector goodMatches;
for (int i = 0; i < descriptor1.rows; i++)
{
double dist = matches[i].distance;
if (dist > (5* minDist) && dist <(maxDist/2))
goodMatches.push_back(matches[i]);
}
Mat matchesImg;
//drawMatches(img1 keypoint1 img2 keypoint2 goodMatches matchesImg Scalar(-1) Scalar(-1) vector() DrawMatchesFlags::NOT_DRAW_SINGLE_POINTS);
drawMatches(img1 keypoint1 img2 keypoint2 goodMatches matchesImg Scalar::all(-1) Scalar::all(-1) vector() DrawMatchesFlags::NOT_DRAW_SINGLE_POINTS);
t = (double)getTickCount() - t;
printf(“execution time = %gms
“ t*1000.0 / getTickFrequency());
Mat copymatchesImg = matchesImg.clone();
resize(copymatchesImg copymatchesImg Size(1280 480));
imshow(“Flann Matching Result“ copymatchesImg);
std::vector obj;
std::vector scene;
for (int i = 0; i < (int)goodMatches.size(); i++)
{
obj.push_back(keypoint1[goodMatches[i].queryIdx].pt);
scene.push_back(keypoint2[goodMatches[i].trainIdx].pt);
}
//直接调用ransac计算单应矩阵
Mat H = findHomography(obj scene CV_RANSAC);
std::vector obj_corners(4);
std::vector scene_corners(4);
obj_corners[0] = Point(0 0);
obj_corners[1] = Point(img1.cols 0);
obj_corners[2] = Point(img1.cols img1.rows);
obj_corners[3] = Point(0 img1.rows);
perspectiveTransform(obj_corners scene_corners H);
//-- Draw lines between the corners (the mapped object in the scene - image_2 )
Point2f offset((
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
..A..H. 36352 2018-05-09 11:18 视网膜图片拼接.vsFLANN matchv14.suo
文件 7895268 2014-07-22 13:41 视网膜图片拼接FLANN match 01.png
文件 7565546 2014-07-22 13:41 视网膜图片拼接FLANN match 02.png
文件 7380 2018-04-08 10:13 视网膜图片拼接FLANN matchFLANN match.vcxproj
文件 945 2018-04-08 10:13 视网膜图片拼接FLANN matchFLANN match.vcxproj.filters
文件 5347 2018-07-05 14:37 视网膜图片拼接FLANN matchmain.cpp
文件 1189 2018-07-05 14:40 视网膜图片拼接FLANN matchx64DebugFLANN match.Build.CppClean.log
文件 1076 2018-07-05 14:40 视网膜图片拼接FLANN matchx64DebugFLANN match.log
文件 770 2018-07-05 14:40 视网膜图片拼接FLANN matchx64DebugFLANN match.tlogCL.command.1.tlog
文件 37710 2018-07-05 14:40 视网膜图片拼接FLANN matchx64DebugFLANN match.tlogCL.read.1.tlog
文件 796 2018-07-05 14:40 视网膜图片拼接FLANN matchx64DebugFLANN match.tlogCL.write.1.tlog
文件 247 2018-07-05 14:40 视网膜图片拼接FLANN matchx64DebugFLANN match.tlogFLANN match.lastbuildstate
文件 3444 2018-07-05 14:40 视网膜图片拼接FLANN matchx64DebugFLANN match.tlogli
文件 9844 2018-07-05 14:40 视网膜图片拼接FLANN matchx64DebugFLANN match.tlogli
文件 782 2018-07-05 14:40 视网膜图片拼接FLANN matchx64DebugFLANN match.tlogli
文件 978077 2018-07-05 14:40 视网膜图片拼接FLANN matchx64Debugmain.obj
文件 1141760 2018-07-05 14:40 视网膜图片拼接FLANN matchx64Debugvc140.idb
文件 2289664 2018-07-05 14:40 视网膜图片拼接FLANN matchx64Debugvc140.pdb
文件 4209 2018-07-05 14:38 视网膜图片拼接FLANN matchx64ReleaseFLANN match.log
文件 790 2018-07-05 14:38 视网膜图片拼接FLANN matchx64ReleaseFLANN match.tlogCL.command.1.tlog
文件 37710 2018-07-05 14:38 视网膜图片拼接FLANN matchx64ReleaseFLANN match.tlogCL.read.1.tlog
文件 600 2018-07-05 14:38 视网膜图片拼接FLANN matchx64ReleaseFLANN match.tlogCL.write.1.tlog
文件 249 2018-07-05 14:38 视网膜图片拼接FLANN matchx64ReleaseFLANN match.tlogFLANN match.lastbuildstate
文件 2 2018-07-05 14:38 视网膜图片拼接FLANN matchx64ReleaseFLANN match.tlogli
文件 2 2018-07-05 14:38 视网膜图片拼接FLANN matchx64ReleaseFLANN match.tlogli
文件 2 2018-07-05 14:38 视网膜图片拼接FLANN matchx64ReleaseFLANN match.tlogli
文件 0 2018-07-05 14:38 视网膜图片拼接FLANN matchx64ReleaseFLANN match.tlogunsuccessfulbuild
文件 3757216 2018-07-05 14:38 视网膜图片拼接FLANN matchx64Releasemain.obj
文件 1953792 2018-07-05 14:38 视网膜图片拼接FLANN matchx64Releasevc140.pdb
文件 1315 2018-04-08 09:24 视网膜图片拼接FLANN match.sln
............此处省略21个文件信息
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)