• window10下面vs2022多个opencv共存的配置过程,以及问题解决。


    问题记录,在使用vs的时候,opencv环境配置成功后,遇到问题解决方案。

    环境:window 10 + opencv2.4.13 + vs2022

    注意:我是在电脑上已经存在opencv4.5.5的情况下,继续配置其他版本的opencv

    环境配置过程:

    配置的步骤如下:

    • 1)opencv官网下载opencv2.4.13,并解压到指定目录。本文解压目录为D:\opencv2.4.13
    • 2)配置电脑环境变量:电脑-->右键“属性”-->左侧导航栏“高级适配器配置”-->"高级“-->"环境变量”-->"系统变量“-->双击"Path"-->添加下列路径

    D:\opencv2.4.13\opencv\build\x64\vc12\bin

    • 3)VS2022中新建一个项目
    • 4) 先将x86改为x64,再进行下一步

    •  5) 右键-》项目名字-》属性(最后一行)

     

    •  6)进入属性界面,选择“VC++ 目录"-->"包含目录"-->添加以下三个目录

    • 7)在VC++目录下设置库目录

     

    • 8)添加附加依赖项 连接器-》输入-》添加依赖项
    • OpenCV2.4.13配置的lib库

    •  debug模式,添加以下库:
    1. opencv_calib3d2413d.lib
    2. opencv_contrib2413d.lib
    3. opencv_core2413d.lib
    4. opencv_features2d2413d.lib
    5. opencv_flann2413d.lib
    6. opencv_gpu2413d.lib
    7. opencv_highgui2413d.lib
    8. opencv_imgproc2413d.lib
    9. opencv_legacy2413d.lib
    10. opencv_ml2413d.lib
    11. opencv_nonfree2413d.lib
    12. opencv_objdetect2413d.lib
    13. opencv_ocl2413d.lib
    14. opencv_photo2413d.lib
    15. opencv_stitching2413d.lib
    16. opencv_superres2413d.lib
    17. opencv_ts2413d.lib
    18. opencv_video2413d.lib
    19. opencv_videostab2413d.lib
    •  release模式,添加以下库:
    1. opencv_calib3d2413.lib
    2. opencv_contrib2413.lib
    3. opencv_core2413.lib
    4. opencv_features2d2413.lib
    5. opencv_flann2413.lib
    6. opencv_gpu2413.lib
    7. opencv_highgui2413.lib
    8. opencv_imgproc2413.lib
    9. opencv_legacy2413.lib
    10. opencv_ml2413.lib
    11. opencv_nonfree2413.lib
    12. opencv_objdetect2413.lib
    13. opencv_ocl2413.lib
    14. opencv_photo2413.lib
    15. opencv_stitching2413.lib
    16. opencv_superres2413.lib
    17. opencv_ts2413.lib
    18. opencv_video2413.lib
    19. opencv_videostab2413.lib
    • 9)先点应用-->确定,否则白费!!!
    •  10)保存属性表,见下面链接:

    VS配置属性表,保存Opencv配置信息_龙龙就是龙龙的博客-CSDN博客_opencv属性表 


     以上是opencv的配置过程。

    问题1:

    vs找不到msvcp120d .dll,无法继续执行代码。重新安装可能会解决此问题。

    网上找了很多个解决方式,都没成功,终于在这边博主中博文中,解决了此问题:

    压缩包 链接:https://pan.baidu.com/s/1VcYtdr2p87FInO61i-55yA 
    提取码:jtkw 

    环境:win10 vs2015 c++ opencv3.4.0

    截图:

     

    解决方式(不要怀疑下面写错了,是正确的): 

    第一步: 下载压缩包,并解压;

    第二步: 32位的msvcp120d 和msvcr120d放到了C:\Windows\SysWOW64,

    第三步: 64位的msvcp120d 和msvcr120d放到了C:\Windows\System32。

    重新启动成功!

    vs找不到msvcp120d .dll,无法继续执行代码。重新安装可能会解决此问题。_猫爪子挠的博客-CSDN博客

     配置完环境之后,运行我需要的代码:

    1. /************************************************************************
    2. * Brief: FAST特征点提取以及FREAK描述子的图像匹配,基于OpenCV2.4.8
    3. ************************************************************************/
    4. #include
    5. #include
    6. #include
    7. #include
    8. #include
    9. #include
    10. #include
    11. #include
    12. #include
    13. using namespace std;
    14. using namespace cv;
    15. int main()
    16. {
    17. Mat img1_src = imread("C:/Users/820PC2/Desktop/img1.png", 0);
    18. Mat img2_src = imread("C:/Users/820PC2/Desktop/img2.png", 0);
    19. //FastFeatureDetector fast(40);
    20. SurfFeatureDetector fast(2000, 4);
    21. FREAK extractor;
    22. vector keypoints1, keypoints2;
    23. Mat descriptor1, descriptor2;
    24. vector final_matches;
    25. vector matches;
    26. double t = (double)getTickCount();
    27. fast.detect(img1_src, keypoints1);
    28. fast.detect(img2_src, keypoints2);
    29. //drawKeypoints(img1_src,keypoints1,img1_src,Scalar(0,255,0));
    30. //drawKeypoints(img2_src,keypoints2,img2_src,Scalar(0,255,0));
    31. extractor.compute(img1_src, keypoints1, descriptor1);
    32. extractor.compute(img2_src, keypoints2, descriptor2);
    33. BFMatcher matcher(NORM_HAMMING, true);//暴力匹配,并且进行crosscheck,就是说第二个参数选择true。
    34. matcher.match(descriptor1, descriptor2, matches);
    35. final_matches = matches;
    36. cout << "number of total_matches : " << final_matches.size() << endl;
    37. //接下来是RANSAC剔除误匹配
    38. vector querymatches, trainmatches;
    39. vector p1, p2;
    40. for (int i = 0; i < final_matches.size(); i++)
    41. {
    42. p1.push_back(keypoints1[final_matches[i].queryIdx]);
    43. p2.push_back(keypoints2[final_matches[i].trainIdx]);
    44. }
    45. for (int i = 0; i < p1.size(); i++)
    46. {
    47. querymatches.push_back(p1[i].pt);
    48. trainmatches.push_back(p2[i].pt);
    49. }
    50. cout << querymatches[1] << " and " << trainmatches[1] << endl;
    51. vector status;
    52. Mat h = findHomography(querymatches, trainmatches, status, CV_FM_RANSAC, 10);
    53. int index = 0;
    54. vector super_final_matches;
    55. for (int i = 0; i < final_matches.size(); i++)
    56. {
    57. cout << status[i];
    58. if (status[i] != 0)
    59. {
    60. super_final_matches.push_back(final_matches[i]);
    61. index++;
    62. }
    63. }
    64. cout << "number of inlier_matches : " << index << endl;
    65. Mat imgMatch;
    66. drawMatches(img1_src, keypoints1, img2_src, keypoints2, super_final_matches, imgMatch);
    67. imshow("imgMatch", imgMatch);
    68. t = ((double)getTickCount() - t) / getTickFrequency();
    69. cout << " total time [s] : " << t << endl;
    70. waitKey(0);
    71. cout << "结束" << endl;
    72. return 0;
    73. }

     FAST特征点提取以及FREAK描述子的图像匹配:可以比较友好的提取图像中的敏感区域。

  • 相关阅读:
    Python推导式
    微信小程序获取元素的高度
    Fiddler(七) - Composer(组合器)克隆或者修改请求
    优维低代码实践:应用级配置
    C#生成putty格式的ppk文件(支持passphrase)
    Jetpack Compose 从入门到入门(八)
    抖音团购跟小程序团购小程序开发有什么区别?
    Gotchiverse NFT 游戏公会访谈——8bit Gamers 公会
    【网页设计】期末大作业html+css (个人生活记录介绍网站)
    Springboot整合Zookeeper分布式组件实例
  • 原文地址:https://blog.csdn.net/qq_44808827/article/details/126328581