当前位置:   article > 正文

OpenCV之重映射_opencv 点映射

opencv 点映射

重映射的概念

 

实现重映射:remap函数

 

代码示例

  1. #include <iostream>
  2. #include <opencv2/core.hpp>
  3. #include <opencv2/highgui.hpp>
  4. #include <opencv2/imgproc.hpp>
  5. #include <opencv2/videoio.hpp>
  6. #include <opencv2/video.hpp>
  7. using namespace cv;
  8. using namespace std;
  9. int main(int argc, char** argv)
  10. {
  11. //0.变量定义
  12. Mat srcImage, dstImage;
  13. Mat map_x, map_y;
  14. //1.载入原始图
  15. srcImage = imread("700levi.jpg");
  16. imshow("原始图", srcImage);
  17. //2.创建和原始图一样的效果图, x重映射图, y重映射图
  18. dstImage.create(srcImage.size(), srcImage.type());
  19. map_x.create(srcImage.size(), CV_32FC1);
  20. map_y.create(srcImage.size(), CV_32FC1);
  21. //3.双层循环 遍历每一个像素点, 改变map_x和map_y的值
  22. for (int i = 0; i < srcImage.rows; i++)
  23. {
  24. for (int j = 0; j < srcImage.cols; j++) {
  25. //改变map_x 和 map_y的值
  26. map_x.at<float>(i, j) = static_cast<float>(j);
  27. map_y.at<float>(i, j) = static_cast<float>(srcImage.rows-i);
  28. }
  29. }
  30. //4.进行重映射操作
  31. remap(srcImage, dstImage, map_x, map_y, INTER_LINEAR);
  32. //5.显示效果图
  33. imshow("程序窗口", dstImage);
  34. waitKey(0);
  35. return 0;
  36. }

效果

 

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

闽ICP备14008679号