浏览代码

模拟数组指纹 2

DevYK 3 年之前
父节点
当前提交
85d5dd815c
共有 1 个文件被更改,包括 15 次插入8 次删除
  1. 15 8
      src/opencv/image_fingerprint.cpp

+ 15 - 8
src/opencv/image_fingerprint.cpp

@@ -40,6 +40,15 @@ AVFrame *cvmatToAvframe(cv::Mat *image, AVFrame *frame) {
 const char *fingerprintFromFFAVFrame(FILE *file, AVFrame *frame, int *len) {
     if (file) fprintf(file, "fingerprintFromFFAVFrame\n");
     if (!frame)return NULL;
+
+    if (1) {
+        char *buf = (char *) malloc(sizeof(char) * 8 * 8);
+        for (int i = 0; i < 64; ++i) {
+            buf[i] = 0;
+        }
+        return buf;
+    }
+
     auto img = avframeToCvmat(frame);
     if (img.empty()) {
         printf("image is empty.");
@@ -57,19 +66,17 @@ const char *fingerprintFromFFAVFrame(FILE *file, AVFrame *frame, int *len) {
     cvtColor(res, gray, COLOR_BGR2GRAY);
     if (file) fprintf(file, "fingerprintFromFFAVFrame 5\n");
     //获取灰度平均值
-//    double mn = mean(gray)[0];
+    double mn = mean(gray)[0];
     if (file) fprintf(file, "fingerprintFromFFAVFrame 6\n");
     char *buf = (char *) malloc(sizeof(char) * scale_width * scale_height);
     if (file) fprintf(file, "fingerprintFromFFAVFrame 7\n");
 //    //得到图像指纹值
-//    for (int i = 0; i < 8; i++) {
-//        for (int j = 0; j < 8; j++) {
-//            buf[i * 8 + j] = (gray.at<unsigned char>(i, j) > mn) ? 1 : 0;
-//        }
-//    }
-    for (int i = 0; i < 64; ++i) {
-        buf[i] = 0;
+    for (int i = 0; i < 8; i++) {
+        for (int j = 0; j < 8; j++) {
+            buf[i * 8 + j] = (gray.at<unsigned char>(i, j) > mn) ? 1 : 0;
+        }
     }
+
     if (file) fprintf(file, "fingerprintFromFFAVFrame 8\n");
     *len = scale_width * scale_height;
     if (file) fprintf(file, "fingerprintFromFFAVFrame 9\n");