import com.izouma.awesomeadmin.dto.VideoProcessResult; import com.izouma.awesomeadmin.util.VideoProcessToolNew; import org.apache.commons.lang3.RandomStringUtils; import org.bytedeco.javacpp.opencv_core; import org.bytedeco.javacpp.opencv_ml; import org.bytedeco.javacv.FrameGrabber; import org.hibernate.validator.internal.util.privilegedactions.GetResource; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; import java.text.DecimalFormat; import java.util.ArrayList; import java.util.List; import java.util.Map; import static org.bytedeco.javacpp.opencv_core.Mat; import static org.bytedeco.javacpp.opencv_imgcodecs.imread; import static org.bytedeco.javacpp.opencv_imgproc.*; @RunWith(JUnit4.class) public class VideoProcessTest { private VideoProcessToolNew videoProcessToolNew = new VideoProcessToolNew(); @Test public void testVideoNew() { try { long ts = System.currentTimeMillis(); VideoProcessResult result = videoProcessToolNew.processVideo1("/Users/drew/Downloads/2019-07-09-04-29-14-hacic6mw.mp4", 0); System.out.println(result); } catch (FrameGrabber.Exception e) { e.printStackTrace(); } } @Test public void testMatch() { opencv_ml.SVM svm = opencv_ml.SVM.load(GetResource.class.getClassLoader().getResource("trainneddata/pubg.xml").getPath()); Mat img = imread("/Users/drew/Pictures/Screenshots/2019-07-09-04-29-14-hacic6mw-0001.jpg"); boolean b = videoProcessToolNew.matchGameOver(svm, img); System.out.println(b); } Mat getTestImg(String path) { Mat img = imread(path); img = videoProcessToolNew.removeBlackBarAndRotate(img); Mat out = new Mat(); bilateralFilter(img, out, 25, 25 * 2, 25 / 2f); img.release(); return out; } @Test public void testRank() { Mat img = getTestImg("/Users/drew/Pictures/Screenshots/2019-07-09-04-29-14-hacic6mw-0001.jpg"); Integer rank = videoProcessToolNew.extractRank(img); } @Test public void testTotal() { Mat img = getTestImg("/Users/drew/Pictures/Screenshots/455-0001.jpg"); videoProcessToolNew.extractTotalNum(img); } @Test public void testMode() { Mat img = imread("/Users/drew/Pictures/Screenshots/455-0001.jpg"); int scale = (int) Math.ceil(5760 / img.cols()); resize(img, img, new opencv_core.Size(0, 0), scale, scale, INTER_LINEAR); Mat out = new Mat(); int size = (int) (img.cols() * 0.0043); if (size % 2 == 0) size++; System.out.println(size); bilateralFilter(img, out, size, size * 2, size / 2f); videoProcessToolNew.extractMode(out); } @Test public void testStatistics() { Mat img = getTestImg("/Users/drew/Pictures/Screenshots/2019-07-09-04-29-14-hacic6mw-0001.jpg"); Map map = videoProcessToolNew.getStatistics(img); System.out.println(map); } @Test public void randomStr() { DecimalFormat df = new DecimalFormat("#.00"); List list = new ArrayList<>(); list.add(df.format(Math.random() * 40) + (Math.random() > 0.5 ? "分钟" : "")); System.out.println(df.format(Math.random() * 40)); RandomStringUtils.random(100, "01234567890./,第分钟"); } }