matlab自带有histeq函数对图像进行直方图均衡

自己写了一个,改成向量化形式,效率提高了一点,但是比自带的还是差很多,差不多9倍

function D = my_histeq(I)
[m,n] = size(I);
S = zeros(,,'double');
% 得到0-各个灰阶的计数
i = :m;j = :n;
S(I(i,j)+) = S(I(i,j)+) + ;
% 得到各灰度阶的概率
S = S./(m*n);
% 得到概率累计分布函数
P = zeros(,,'double');
P() = S();
k = :;
P(k) = P(k-) + S(k);
% 投影到灰度阶
D = zeros(m,n,'uint8');
D(i,j) = P(I(i,j)+)*+0.5;

原来使用for循环的

function D = my_histeq(I)
[m,n] = size(I);
S = zeros(,,'double');
% 得到0-各个灰阶的计数
for i = :m
for j = :n
S(I(i,j)+) = S(I(i,j)+) + ; % 注意下标
end
end
% 得到各灰度阶的概率
S = S./(m*n);
% 得到概率累计分布函数
P = zeros(,,'double');
for i = :
if i==
P(i) = S(i);
else
P(i) = P(i-) + S(i);
end
end
D = zeros(m,n,'uint8');
for i = :m
for j=:n
D(i,j) = P(I(i,j)+)*+0.5;
end
end

matlab直方图均衡,使用向量优化的更多相关文章

  1. Matlab、R向量与矩阵操作 z

    已有 1849 次阅读 2012-8-2 15:15 |系统分类:科研笔记|关键词:矩阵 480 window border center Matlab.R向量与矩阵操作   描    述 Matla ...

  2. Matlab、R向量与矩阵操作

    Matlab.R向量与矩阵操作   描    述 Matlab R 1 建立行向量v=[1 2  3 4] v=[1 2 3 4] v<-c(1,2,3,4)或v<-scan(),然后输入 ...

  3. 遗传算法MATLAB实现(2):一元函数优化举例

    遗传算法提供了一种求解非线性.多模型.多目标等复杂系统优化问题的通用框架. 先从例子开始,慢慢再总结理论... [例]利用遗传算法计算函数f(x)=x*cos(5*pi*x)+3.5在区间[-1,2. ...

  4. [matlab] 6.粒子群优化算法

    粒子群优化(PSO, particle swarm optimization)算法是计算智能领域,除了蚁群算法,鱼群算法之外的一种群体智能的优化算法,该算法最早由Kennedy和Eberhart在19 ...

  5. 遗传算法MATLAB实现(3):多元函数优化举例

    多峰的Shubert为: 求f(x,y)在[-10,10]x[-10,10]上的最大值. MATLAB代码: fun_mutv函数为: function my=fun_mutv(x,y) t1=zer ...

  6. Matlab中的向量

    1.             向量的创建 1)直接输入: 行向量:a=[1,2,3,4,5] 列向量:a=[1;2;3;4;5] 2)用“:”生成向量 a=J:K 生成的行向量是a=[J,J+1,…, ...

  7. matlab直方图均衡

    clear all; i=imread('cameraman.tif'); figure; subplot(2,2,1); imshow(i); title('原始图像'); subplot(2,2, ...

  8. MATLAB粒子群优化算法(PSO)

    MATLAB粒子群优化算法(PSO) 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 一.介绍 粒子群优化算法(Particle Swarm Optim ...

  9. Applying vector median filter on RGB image based on matlab

    前言: 最近想看看矢量中值滤波(Vector median filter, VMF)在GRB图像上的滤波效果,意外的是找了一大圈却发现网上没有现成的code,所以通过matab亲自实现了一个,需要学习 ...

随机推荐

  1. (转)Nginx SSL+tomcat集群,request.getScheme() 取到https正确的协议

    转自http://www.cnblogs.com/interdrp/p/4881785.html 最近在做一个项目, 架构上使用了 Nginx +tomcat 集群, 且nginx下配置了SSL,to ...

  2. jQuery和AngularJS的区别小分析

    最近一直在研究angularjs,最大的感受就是它和之前的jQuery以及基于jQuery的各种库设计理念完全不同,如果不能认识到这点而对于之前做jQuery开发的程序员,去直接学习angularjs ...

  3. xamarin.Android 标记1

    群里一个朋友的博客 推荐一下 自己也做个书签记录. http://sunyt.me/2015/04/15/Xamarin-FAQ/

  4. Oracle的索引适用范围

    若字段数据的重复率不是很高,而且数据量不是很大,考虑B树索引: 若字段数据的重复率较高,而且查询中有特定的查询方式(比如列之间有或,与等逻辑运算),则考虑位图索引: 若对列中的字段进行模糊查询或者语言 ...

  5. 微信开发笔记:公众号获取access_token

    微信开发中,access_token的获取是一种非常常见的功能,通过公众号的appid和appsecret来向微信公众平台请求一个临时通行凭证:access_token.公众平台上的绝大部分操作都会需 ...

  6. JAVA Day10

      使用继承 编写继承: class Engineer{ //公共的属性和方法 }   编写子类,继承父类, class SoftEnineer extends Enginerr{ //子类持有的属性 ...

  7. Android-组件RadioButton使用技巧

    当初第一次接触Android组件的时候,我感觉微信底部的菜单,是用button这样的组件来做的. 可我想错了.却是用RadioButton来做的.那到底怎么做,接下来我就做一下分享!希望看了之后你也觉 ...

  8. IntelliJ IDEA 14 注册码

    IntelliJ IDEA 14 下载地址: IntelliJ IDEA 14 下载 分享几个license: (1) key:IDEA value:61156-YRN2M-5MNCN-NZ8D2-7 ...

  9. Codeforces 717G Underfail(最小费用最大流 + AC自动机)

    题目 Source http://codeforces.com/problemset/problem/717/G Description You have recently fallen throug ...

  10. 【原】iOS学习之Socket

    Socket在百度百科的定义 网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket. 相关的描述 Socket的英文原义是“孔”或“插座”.作为BSD UNIX的进 ...