利用OpenCV计算图像二维熵
直接上代码:
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计算图像二维熵相关推荐
- 【OpenCV 例程200篇】54. OpenCV 实现图像二维卷积
[OpenCV 例程200篇]54. OpenCV 实现图像二维卷积 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 ...
- 利用Opencv+Python 实现二维码识别
准备工作: 二维码图片,我这里直接打印在了一张A4纸上,或者直接在草料网站上生成 草料二维码生成器,存放在手机上进行显示.在安装条码扫描库的时候大家注意:zbar库只针对 python2 版本有支持, ...
- 利用OpenCV计算图像的垂直和水平积分投影
转自:http://blog.csdn.net/quarryman/article/details/6427886 说明:本文的代码改编自longlongago2000的一篇博文,这是它的链接:htt ...
- 【OpenCV 例程200篇】53. Scipy 实现图像二维卷积
[OpenCV 例程200篇]53. Scipy 实现图像二维卷积 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 滤 ...
- 图像的一维熵和二维熵
图像的一维熵和二维熵 图像的熵是一种特征的统计形式,它反映了图像中平均信息量的多少.图像的一维熵表示图像中灰度分布的聚集特征所包含的信息量,令Pi表示图像中灰度值为i的像素所占的比例,则定义灰度图象的 ...
- Opencv的使用小教程3——利用轮廓检测实现二维码定位
Opencv的使用小教程3--利用轮廓检测实现二维码定位 二维码具有什么特征 实现效果 识别二维码的流程 1.预处理图像 2.寻找轮廓 3.通过寻找到的轮廓确定"回"的位置 4.创 ...
- OpenCV中Mat,图像二维指针和CxImage类的转换
在做图像处理中,常用的函数接口有OpenCV中的Mat图像类,有时候需要直接用二维指针开辟内存直接存储图像数据,有时候需要用到CxImage类存储图像.本文主要是总结下这三类存储方式之间的图像数据的转 ...
- 扫描图像二维码抠图(倾斜校正 去黑边)
扫描图像二维码抠图(倾斜校正 去黑边) 时间:2016-05-06 16:23:15 阅读:1459 评论:0 收藏:0 [点我收藏+] 标签:des 算法 ...
- python图片相似度计算_python Opencv计算图像相似度过程解析
这篇文章主要介绍了python Opencv计算图像相似度过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一.相关概念 一般我们人区分谁是谁 ...
最新文章
- 剑指offer:面试题32 - I. 从上到下打印二叉树
- selenium一些基本语句
- Delphi下遍历文件夹下所有文件的递归算法
- 蓝桥杯第六届决赛真题大全解(java版本)
- mysql之case_mysql存储过程之case语句
- python下载文件损坏_pythonw.exe停止工作,无法运行IDLE或任何.py文件 - python
- 企业实战_03_MyCat下载、安装、启动
- Bootstrap3 源代码样式
- netty在项目中实际使用_公房动迁中,实际使用人享有哪些利益?
- LeetCode题目Java代码解答 (详细解释!!!)
- Intel(R) Matrix Storage Manager 介绍
- 实验11 B样条曲面生成
- 电脑使用ps很卡该怎么办,ps如何设置才不会卡
- Windows文件所有者恢复TrustedInstaller权限
- spring自定义yml文件解析器
- 俄罗斯方块游戏51单片机实现
- matlab绿色 不伤眼,什么颜色的灯光最伤眼睛不看后悔啊
- 聚合搜索 Meta Search实践
- 湘潭大学 Hurry Up 三分,求凹函数的最小值问题
- 微信小程序 - BILIBILI-demo
热门文章
- 学会如何从皮肤看身体状况
- 华为运营商级路由器配置示例 | 配置HVPLS组网的VPLS PW Redundancy示例
- 深度优先和广度优先的理解
- 阿里云服务器的Samba配置
- element中组件el-autocomplete远程搜索之精确匹配和模糊匹配
- 如何使用 PyTorch 进行图像分类
- 从美术生到程序员转型之路【我的故事】,2021年五面蚂蚁
- 【GitHub学生包优惠申请】学生党“白嫖”GitHub攻略2022年6月
- 蓝V企业号与个人号两者的区别,认证蓝V都有什么特权。
- Linux中的定时自动执行功能(at,crontab)