将简化色彩后的特征图像中每个像素依次与当前图像像素平均值进行比较

程序代码如下:

#include <opencv2/opencv.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <stdio.h>using namespace cv;int main()
{Mat srcImage = imread("1.jpg");int mm=8, nn=8;//mm,nn为缩小后图像的大小。int cc=64; //cc为图像简化色彩后的灰度级数。int t[8 * 8];namedWindow("原图");imshow("原图", srcImage);cvtColor(srcImage, srcImage, CV_BGR2GRAY);  //图像化为灰度namedWindow("灰度原图");imshow("灰度原图", srcImage);cv::Size dsize = Size(mm, nn);cv::resize(srcImage, srcImage,dsize);namedWindow("灰度缩小");imshow("灰度缩小", srcImage);Mat Feature(mm, nn, CV_32SC1, Scalar::all(0));int i, j;int M = srcImage.rows;int N = srcImage.cols;for (i = 0; i<M; i++)for (j = 0; j<N; j++){Feature.at<int>(i / (M / mm), j / (N / nn)) = Feature.at<int>(i / (M / mm), j / (N / nn)) + srcImage.at<uchar>(i, j);// Feature.at<uchar>(i/(M/8),j/(N/8))+=m.at<uchar>(i,j);}//测试:看看缩小后,图像里面的每个像素值是多少:for(i=0;i<mm;i++)for (j = 0; j < nn; j++)printf_s("缩小后,图像里面的每个像素值(%d,%d)%d   \n", mm, nn, Feature.at<int>(i, j));printf_s("end\n");//简化色彩。当前灰度级为8位,即256色,将其处理为cc色。//这里设置cc=64for (i = 0; i<mm; i++)for (j = 0; j<nn; j++)Feature.at<int>(i, j) /= (256 / cc);//测试:看看简化色彩后,图像内里面的每个像素值是多少:for(i=0;i<mm;i++)for (j = 0; j < nn; j++)printf_s("简化色彩后,图像内里面的每个像素值是多少(%d,%d):%d   \n", mm, nn, Feature.at<int>(i, j));//第3步:计算图像的平均值。double sum, aver;sum = 0;for (i = 0; i<mm; i++)for (j = 0; j<nn; j++)sum += Feature.at<int>(i, j);aver = sum / (mm*nn);printf_s("sum=%lf,aver=%lf",sum,aver);//第4步:计算像素值与平均值大小关系。同时得到特征矩阵FeatureResult,并返回。int flag = 0;int FeatureResult[8 * 8] = {0};for (i = 0; i<mm; i++)for (j = 0; j<nn; j++)if (Feature.at<int>(i, j)>aver)FeatureResult[flag++] = 1;elseFeatureResult[flag++] = 0;printf_s("\n特征矩阵:\n");for (i = 0; i < mm*nn; i++){printf_s("%d  ", FeatureResult[i]);if (i % 7 == 0)printf_s("\n");}printf("\n");waitKey();return 0;
}

程序运行结构如下:

然后关于哈希值,如下所示:

计算特征矩阵及哈希值(含OpenCV代码)相关推荐

  1. 图像相似度计算之哈希值方法OpenCV实现

    感知哈希算法(perceptual hash algorithm),它的作用是对每张图像生成一个"指纹"(fingerprint)字符串,然后比较不同图像的指纹.结果越接近,就说明 ...

  2. 区块链学习(2) 计算区块的哈希值

    本文的目的:根据一个区块的信息算出他的哈希值 区块信息: https://www.blockchain.com/zh/btc/block-height/20000 区块头格式: 共80个字节,上图中都 ...

  3. java怎么计算幂函数,java中幂指数值的运算代码解析

    说到幂指数的运算我们就会用到Math.pow(doublea,doubleb),返回的结果是a的b次方. 在Java中,当我们计算2的n次方时,可以直接用Math.pow来计算.非常方便. 但是,已知 ...

  4. 图像处理之简化色彩(含OpenCV代码)

    简化色彩的用处:当待检索的图像与图像库中的图像在颜色撒谎能够存在一定的色彩差异时,系统能自动忽略在一定范围内的色彩差异,将在一定色彩差异范围内的图像划分为同一组,使其具有相同(相近)的特征值. 可以将 ...

  5. 《恋上数据结构第1季》哈希表介绍以及从源码分析哈希值计算

    哈希表(Hash Table) 引出哈希表 哈希表(Hash Table) 哈希冲突(Hash Collision) JDK1.8的哈希冲突解决方案 哈希函数 如何生成 key 的哈希值 Intege ...

  6. 区块链 01(简化后的区块包括父区块哈希值、数据、时间戳、哈希值这四个字段,区块的哈希值由父区块哈希值、数据、时间戳、3个字段拼接通过 哈希算法计算而成)

    """区块包括区块头和区块体两个部分.区块头由版本.父区块哈希值.数据.Merkle根.时间戳.目标难度. #Nonce值组成:区块体实际上可以包含任何内容,在比特币中包 ...

  7. Python小工具:将对象转换为不可变类型并计算其哈希值

    在设计单元测试时,我们往往需要将运行结果与预期结果相比较.但是,如果运行结果是一个比较复杂的数据结构的话,那么我们可能需要将预期结果硬编码到代码中,或存储到文件中,都需要占用一定的空间.为了减少单元测 ...

  8. python+opencv 计算图片的感知hash值,来计算汉明距离,简单的找相似图片

    感知哈希算法是一类算法的总称,包括aHash.pHash.dHash.顾名思义,感知哈希不是以严格的方式计算Hash值,而是以更加相对的方式计算哈希值,因为"相似"与否,就是一种相 ...

  9. java内存地址和哈希值_数据哈希值的计算和在table中的存储位置

    我们知道,Objects中定义了hashcode()函数,用于计算对象的哈希值.并且在很多类中都对hashcode()函数进行了覆盖.但是在HashMap中并没有直接使用各个类的hash值,而是使用h ...

最新文章

  1. ansys的kbc_ansys求解过程
  2. 玩转Eclipse — 自动代码规范检查工具Checkstyle
  3. Java和JavaScript区别与联系
  4. LeetCode 88合并两个有序数组89格雷编码
  5. ActiveMQ(一)
  6. 利用 commit 理解镜像构成
  7. Galgame研发日志:那么,怎么才能回本呢?
  8. web业务系统权限控制
  9. python 打开targz文件_Python下使用pandas打开excel文件并进行处理
  10. pidgin qq_Pidgin入门指南,通用消息客户端
  11. 用Python的Tultle模块创建一个五角星
  12. Android手绘效果实现
  13. 微信小程序swiper高度自适应,swiper的子元素高度不固定
  14. 《人月神话》读书笔记2--空间技能
  15. Java使用itext 生成PDF,以生成个人简历为例
  16. VS2015专业版打开处于白屏状态
  17. 基于ZStack3.0.1(CC2530)和ST7735S的HAL_LCD驱动替换(一)
  18. Surround360 Render目录下RENDER文档——中文翻译
  19. DataGrip csv等文件 快速建表
  20. 在使用谷歌时发现一个诡异问题cookie传不过去

热门文章

  1. [新功能]查看好友最新随笔
  2. 做到这几点,让你离高级程序员更近一步!
  3. 陶瓷移动在飞信版C++女程序员
  4. Nokia的北美困局
  5. C++字符串完全指南(2) - 各种字符串类- CRT类
  6. 深入探讨MFC消息循环和消息泵(一)
  7. 2020年学习编程最好的10个网站,绝对不可错过!!
  8. mysql键太长_数据库,主键为何不宜太长长长长长长长长?(转)
  9. mybatis没有导入sqlsessionfactory包_MyBatis——搭建第一个MyBatis
  10. 单模光电转换器怎么接_单模光纤收发器怎么连接?