VideoProcessTest.java 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. import com.izouma.awesomeadmin.dto.VideoProcessResult;
  2. import com.izouma.awesomeadmin.util.VideoProcessToolNew;
  3. import org.apache.commons.lang3.RandomStringUtils;
  4. import org.bytedeco.javacpp.opencv_core;
  5. import org.bytedeco.javacpp.opencv_ml;
  6. import org.bytedeco.javacv.FrameGrabber;
  7. import org.hibernate.validator.internal.util.privilegedactions.GetResource;
  8. import org.junit.Test;
  9. import org.junit.runner.RunWith;
  10. import org.junit.runners.JUnit4;
  11. import java.text.DecimalFormat;
  12. import java.util.ArrayList;
  13. import java.util.List;
  14. import java.util.Map;
  15. import static org.bytedeco.javacpp.opencv_core.Mat;
  16. import static org.bytedeco.javacpp.opencv_imgcodecs.imread;
  17. import static org.bytedeco.javacpp.opencv_imgproc.*;
  18. @RunWith(JUnit4.class)
  19. public class VideoProcessTest {
  20. private VideoProcessToolNew videoProcessToolNew = new VideoProcessToolNew();
  21. @Test
  22. public void testVideoNew() {
  23. try {
  24. long ts = System.currentTimeMillis();
  25. VideoProcessResult result = videoProcessToolNew.processVideo1("/Users/drew/Downloads/2019-07-09-04-29-14-hacic6mw.mp4", 0);
  26. System.out.println(result);
  27. } catch (FrameGrabber.Exception e) {
  28. e.printStackTrace();
  29. }
  30. }
  31. @Test
  32. public void testMatch() {
  33. opencv_ml.SVM svm = opencv_ml.SVM.load(GetResource.class.getClassLoader().getResource("trainneddata/pubg.xml").getPath());
  34. Mat img = imread("/Users/drew/Pictures/Screenshots/2019-07-09-04-29-14-hacic6mw-0001.jpg");
  35. boolean b = videoProcessToolNew.matchGameOver(svm, img);
  36. System.out.println(b);
  37. }
  38. Mat getTestImg(String path) {
  39. Mat img = imread(path);
  40. img = videoProcessToolNew.removeBlackBarAndRotate(img);
  41. Mat out = new Mat();
  42. bilateralFilter(img, out, 25, 25 * 2, 25 / 2f);
  43. img.release();
  44. return out;
  45. }
  46. @Test
  47. public void testRank() {
  48. Mat img = getTestImg("/Users/drew/Pictures/Screenshots/2019-07-09-04-29-14-hacic6mw-0001.jpg");
  49. Integer rank = videoProcessToolNew.extractRank(img);
  50. }
  51. @Test
  52. public void testTotal() {
  53. Mat img = getTestImg("/Users/drew/Pictures/Screenshots/455-0001.jpg");
  54. videoProcessToolNew.extractTotalNum(img);
  55. }
  56. @Test
  57. public void testMode() {
  58. Mat img = imread("/Users/drew/Pictures/Screenshots/455-0001.jpg");
  59. int scale = (int) Math.ceil(5760 / img.cols());
  60. resize(img, img, new opencv_core.Size(0, 0), scale, scale, INTER_LINEAR);
  61. Mat out = new Mat();
  62. int size = (int) (img.cols() * 0.0043);
  63. if (size % 2 == 0) size++;
  64. System.out.println(size);
  65. bilateralFilter(img, out, size, size * 2, size / 2f);
  66. videoProcessToolNew.extractMode(out);
  67. }
  68. @Test
  69. public void testStatistics() {
  70. Mat img = getTestImg("/Users/drew/Pictures/Screenshots/2019-07-09-04-29-14-hacic6mw-0001.jpg");
  71. Map<String, Double> map = videoProcessToolNew.getStatistics(img);
  72. System.out.println(map);
  73. }
  74. @Test
  75. public void randomStr() {
  76. DecimalFormat df = new DecimalFormat("#.00");
  77. List<String> list = new ArrayList<>();
  78. list.add(df.format(Math.random() * 40) + (Math.random() > 0.5 ? "分钟" : ""));
  79. System.out.println(df.format(Math.random() * 40));
  80. RandomStringUtils.random(100, "01234567890./,第分钟");
  81. }
  82. }