直接上代码:

void calc_2D_entropy(cv::Mat &input, cv::Mat &output){int height = input.rows;int width = input.cols;cv::Mat out = cv::Mat::zeros(height, width, CV_32FC1);//template sizeint w = 3;for (int i = w; i < height - w; i++){float *data = out.ptr<float>(i);for (int j = w; j < width - w; j++){//cv::Mat Hist = cv::Mat::zeros(1, 256, CV_32F);float Hist[256] = { 0 };for (int p = i - w; p < i + w + 1; p++){uchar *t = input.ptr<uchar>(p);for (int q = j - w; q < j + w + 1; q++){int tmp = t[q];//cout << "tmp:" << tmp << endl;Hist[tmp] = Hist[tmp] + 1;}}float sumHist = 0;for (int ii = 0; ii < 256; ii++){sumHist += Hist[ii];}//get the probalityfor (int ii = 0; ii < 256; ii++){Hist[ii] = Hist[ii] / sumHist;//if (Hist[ii] != 0)//  cout << ii << ":" << Hist[ii] << endl;}//calculate the entropyfor (int k = 0; k < 256; k++){float v = Hist[k];float z = data[j];//cout << "z:" << z << endl;if (v != 0){double H = v * (log(v) / (float)log(2.0));//H = H * 80.5 - 1;data[j] = data[j] - H;//data[j] = data[j] + v * log(1 / v);//cout << j << ":" << data[j] << endl;}}}}normalize(out, output);output = output * 255;}

利用OpenCV计算图像二维熵相关推荐

  1. 【OpenCV 例程200篇】54. OpenCV 实现图像二维卷积

    [OpenCV 例程200篇]54. OpenCV 实现图像二维卷积 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 ...

  2. 利用Opencv+Python 实现二维码识别

    准备工作: 二维码图片,我这里直接打印在了一张A4纸上,或者直接在草料网站上生成 草料二维码生成器,存放在手机上进行显示.在安装条码扫描库的时候大家注意:zbar库只针对 python2 版本有支持, ...

  3. 利用OpenCV计算图像的垂直和水平积分投影

    转自:http://blog.csdn.net/quarryman/article/details/6427886 说明:本文的代码改编自longlongago2000的一篇博文,这是它的链接:htt ...

  4. 【OpenCV 例程200篇】53. Scipy 实现图像二维卷积

    [OpenCV 例程200篇]53. Scipy 实现图像二维卷积 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 滤 ...

  5. 图像的一维熵和二维熵

    图像的一维熵和二维熵 图像的熵是一种特征的统计形式,它反映了图像中平均信息量的多少.图像的一维熵表示图像中灰度分布的聚集特征所包含的信息量,令Pi表示图像中灰度值为i的像素所占的比例,则定义灰度图象的 ...

  6. Opencv的使用小教程3——利用轮廓检测实现二维码定位

    Opencv的使用小教程3--利用轮廓检测实现二维码定位 二维码具有什么特征 实现效果 识别二维码的流程 1.预处理图像 2.寻找轮廓 3.通过寻找到的轮廓确定"回"的位置 4.创 ...

  7. OpenCV中Mat,图像二维指针和CxImage类的转换

    在做图像处理中,常用的函数接口有OpenCV中的Mat图像类,有时候需要直接用二维指针开辟内存直接存储图像数据,有时候需要用到CxImage类存储图像.本文主要是总结下这三类存储方式之间的图像数据的转 ...

  8. 扫描图像二维码抠图(倾斜校正 去黑边)

    扫描图像二维码抠图(倾斜校正 去黑边) 时间:2016-05-06 16:23:15      阅读:1459      评论:0      收藏:0      [点我收藏+] 标签:des   算法 ...

  9. python图片相似度计算_python Opencv计算图像相似度过程解析

    这篇文章主要介绍了python Opencv计算图像相似度过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一.相关概念 一般我们人区分谁是谁 ...

最新文章

  1. 剑指offer:面试题32 - I. 从上到下打印二叉树
  2. selenium一些基本语句
  3. Delphi下遍历文件夹下所有文件的递归算法
  4. 蓝桥杯第六届决赛真题大全解(java版本)
  5. mysql之case_mysql存储过程之case语句
  6. python下载文件损坏_pythonw.exe停止工作,无法运行IDLE或任何.py文件 - python
  7. 企业实战_03_MyCat下载、安装、启动
  8. Bootstrap3 源代码样式
  9. netty在项目中实际使用_公房动迁中,实际使用人享有哪些利益?
  10. LeetCode题目Java代码解答 (详细解释!!!)
  11. Intel(R) Matrix Storage Manager 介绍
  12. 实验11 B样条曲面生成
  13. 电脑使用ps很卡该怎么办,ps如何设置才不会卡
  14. Windows文件所有者恢复TrustedInstaller权限
  15. spring自定义yml文件解析器
  16. 俄罗斯方块游戏51单片机实现
  17. matlab绿色 不伤眼,什么颜色的灯光最伤眼睛不看后悔啊
  18. 聚合搜索 Meta Search实践
  19. 湘潭大学 Hurry Up 三分,求凹函数的最小值问题
  20. 微信小程序 - BILIBILI-demo

热门文章

  1. 学会如何从皮肤看身体状况
  2. 华为运营商级路由器配置示例 | 配置HVPLS组网的VPLS PW Redundancy示例
  3. 深度优先和广度优先的理解
  4. 阿里云服务器的Samba配置
  5. element中组件el-autocomplete远程搜索之精确匹配和模糊匹配
  6. 如何使用 PyTorch 进行图像分类
  7. 从美术生到程序员转型之路【我的故事】,2021年五面蚂蚁
  8. 【GitHub学生包优惠申请】学生党“白嫖”GitHub攻略2022年6月
  9. 蓝V企业号与个人号两者的区别,认证蓝V都有什么特权。
  10. Linux中的定时自动执行功能(at,crontab)