当前位置:   article > 正文

【OpenCV系列】【二】利用Rect计算IOU

opencv rect iou

在目标检测中,经常需要计算IOU。也就是两个矩形的交集除以两个矩形的并集。这里使用OpevCV的Rect来进行IOU的计算。

【场景一】无交集,IOU为0

  1. #include<opencv2/core/core.hpp>
  2. #include<opencv2/highgui/highgui.hpp>
  3. #include<opencv2/imgproc/imgproc.hpp>
  4. #include<iostream>
  5. using namespace std;
  6. using namespace cv;
  7. int main() {
  8. Rect rect;
  9. rect.x = 0;
  10. rect.y = 0;
  11. rect.width = 10;
  12. rect.height = 10;
  13. Rect rect1;
  14. rect1.x = 10;
  15. rect1.y = 10;
  16. rect1.width = 10;
  17. rect1.height = 10;
  18. //计算两个矩形的交集
  19. Rect rect2 = rect | rect1;
  20. cout << rect2.x <<";"<< rect2.y << ";"<<rect2.width <<";"<< rect2.height <<";"<< rect2.area() << endl;
  21. //计算两个举行的并集
  22. Rect rect3 = rect & rect1;
  23. cout << rect3.x << ";" << rect3.y << ";" << rect3.width << ";" << rect3.height << ";" << rect3.area() << endl;
  24. //计算IOU
  25. double IOU = rect3.area() *1.0/ rect2.area();
  26. cout << "IOU=" << IOU << endl;
  27. system("Pause");
  28. }

结果为:

202014_sOJi_3800567.png

【场景一】有交集,IOU为0.44444

  1. #include<opencv2/core/core.hpp>
  2. #include<opencv2/highgui/highgui.hpp>
  3. #include<opencv2/imgproc/imgproc.hpp>
  4. #include<iostream>
  5. using namespace std;
  6. using namespace cv;
  7. int main() {
  8. Rect rect;
  9. rect.x = 0;
  10. rect.y = 0;
  11. rect.width = 10;
  12. rect.height = 10;
  13. Rect rect1;
  14. rect1.x = 2;
  15. rect1.y = 2;
  16. rect1.width = 10;
  17. rect1.height = 10;
  18. //计算两个矩形的交集
  19. Rect rect2 = rect | rect1;
  20. cout << rect2.x <<";"<< rect2.y << ";"<<rect2.width <<";"<< rect2.height <<";"<< rect2.area() << endl;
  21. //计算两个举行的并集
  22. Rect rect3 = rect & rect1;
  23. cout << rect3.x << ";" << rect3.y << ";" << rect3.width << ";" << rect3.height << ";" << rect3.area() << endl;
  24. //计算IOU
  25. double IOU = rect3.area()*1.0 / rect2.area();
  26. cout << "IOU=" << IOU << endl;
  27. system("Pause");
  28. }

202603_ECmK_3800567.png

Rect坐标系为:

202733_2x4N_3800567.png

总结:可以看出,使用opencv计算IOU比较简单,只需要三行代码,当然,自己手动计算,也不费事,只是需要判断各种场景而已。

转载于:https://my.oschina.net/u/3800567/blog/1795889

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/114126
推荐阅读
相关标签
  

闽ICP备14008679号