当前位置:   article > 正文

java + opencv 实现图片透视变换_java调用opencv实现透视矫正

java调用opencv实现透视矫正
  1. package hsytest;
  2. import org.opencv.core.*;
  3. import org.opencv.imgcodecs.Imgcodecs;
  4. import org.opencv.imgproc.Imgproc;
  5. import org.opencv.utils.Converters;
  6. import java.net.URL;
  7. import java.util.ArrayList;
  8. import java.util.Arrays;
  9. import java.util.Iterator;
  10. import java.util.List;
  11. public class HsyOpencvUtils {
  12. static {
  13. // 解决awt报错问题
  14. System.setProperty("java.awt.headless", "false");
  15. System.out.println("java.library.path = " + System.getProperty("java.library.path"));
  16. // 加载动态库
  17. // URL url = ClassLoader.getSystemResource("opencv_java341.dll");
  18. // URL url = HsyOpencvTest.class.getResource("opencv_java320.dll");
  19. // String path = url.toString();
  20. // System.out.println( "path = " + path );
  21. System.load( "E:\\git\\study\\opencvHandleImg-master\\out\\production\\Opencv\\opencv_java320.dll" );
  22. }
  23. /**
  24. * 图片的透视变换
  25. */
  26. public static void perspectiveTransform( String imagePath_src,
  27. String outputPath,
  28. Point p1_src,
  29. Point p2_src,
  30. Point p3_src,
  31. Point p4_src,
  32. Point p1_output,
  33. Point p2_output,
  34. Point p3_output,
  35. Point p4_output ) {
  36. try{
  37. Mat mat_src = Imgcodecs.imread( imagePath_src );
  38. Mat mat_output = new Mat();
  39. List<Point> points_src = Arrays.asList( p1_src,p2_src,p3_src,p4_src );
  40. Mat mat_points_src= Converters.vector_Point_to_Mat( points_src,CvType.CV_32F );
  41. List<Point> points_output = Arrays.asList( p1_output,p2_output,p3_output,p4_output );
  42. Mat mat_points_output = Converters.vector_Point_to_Mat( points_output,CvType.CV_32F );
  43. Mat mat_transform_map = Imgproc.getPerspectiveTransform( mat_points_src, mat_points_output );
  44. Imgproc.warpPerspective( mat_src, mat_output, mat_transform_map, mat_src.size(),Imgproc.INTER_LINEAR );
  45. Imgcodecs.imwrite( outputPath,mat_output );
  46. }catch(Exception e){
  47. e.printStackTrace();
  48. }
  49. }
  50. }

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

闽ICP备14008679号