DevYK 3 lat temu
rodzic
commit
7220243c34
2 zmienionych plików z 13 dodań i 4 usunięć
  1. 11 2
      src/opencv/image_fingerprint.cpp
  2. 2 2
      src/utils/video_similarity.cpp

+ 11 - 2
src/opencv/image_fingerprint.cpp

@@ -37,7 +37,7 @@ AVFrame *cvmatToAvframe(cv::Mat *image, AVFrame *frame) {
     return frame;
 }
 
-int fingerprintFromFFAVFrame(FILE *file, AVFrame *frame,char buf[64]) {
+int fingerprintFromFFAVFrame(FILE *file, AVFrame *frame, char buf[64]) {
     if (file) fprintf(file, "fingerprintFromFFAVFrame\n");
     if (!frame)return NULL;
 
@@ -74,8 +74,17 @@ int fingerprintFromFFAVFrame(FILE *file, AVFrame *frame,char buf[64]) {
     if (file) fprintf(file, "fingerprintFromFFAVFrame 4\n");
     cvtColor(res, gray, COLOR_BGR2GRAY);
     if (file) fprintf(file, "fingerprintFromFFAVFrame 5\n");
+    Mat mat_mean, mat_stddev;
+    meanStdDev(gray, mat_mean, mat_stddev);//求灰度图像的均值、均方差
+    double mn = 0;
+    if (!mat_mean.empty()) {
+        mn = mat_mean.at<double>(0, 0);
+    } else {
+        printf("灰度平均值 empty!\n");
+        return -1;
+    };
     //获取灰度平均值
-    double mn = mean(gray)[0];
+//     mn = mean(gray)[0];
     if (file) fprintf(file, "fingerprintFromFFAVFrame 6\n");
     if (file) fprintf(file, "fingerprintFromFFAVFrame 7\n");
     if (gray.cols * gray.rows < scale_height * scale_width)return NULL;

+ 2 - 2
src/utils/video_similarity.cpp

@@ -296,8 +296,8 @@ const char *get_video_similarity_list(const char *inputjson) {
             const char *name = GetFileName(((VideoSimilarityContext *) id)->video_path, n); //把字符串及其长度传给函数
             printf("%s\n", name); //name就是那个名称,可以输出
             char args[512];
-            sprintf(args, "/Users/devyk/Data/Project/sample/github_code/OpenCVSample/temp/%s.log", name);
-//            sprintf(args, "/datalog/ffmpeg_opencv/%s.log", name);
+//            sprintf(args, "/Users/devyk/Data/Project/sample/github_code/OpenCVSample/temp/%s.log", name);
+            sprintf(args, "/datalog/ffmpeg_opencv/%s.log", name);
             ((VideoSimilarityContext *) id)->log = fopen(args, "wb+");
             printf("args===%s \n", args);
             if (((VideoSimilarityContext *) id)->log)fprintf(((VideoSimilarityContext *) id)->log, inputjson);