16位图像matlab直方图均衡化

简介: 如果,如果你要做的是8位图直方图均衡化,别看了。前方左转查查histeq怎么用,挺简单的。本文主要实现了一下16位的raw图像直方图均衡化。本人博客,csdn搬运过来

前言

如果,如果你要做的是8位图直方图均衡化,别看了。前方左转查查histeq怎么用,挺简单的,另我个新手上路,不会用matlab,所以在这里记录下histeq怎么用,不看往下翻。

8位图 histeq函数

8位tif灰度图像图像

灰度图就很方便了,I是读取到的数组,用histeq将I做均衡化,用I1存储生成的数组,用figure显示出来

I = imread(‘xxx.tif’);
I1 = histeq(I);
figure,imshow(I1,[])

好的这里如果要存储的话,反正是8位的图像嘛,这里就直接用

imwrite(I1,'m.jpeg')

就可以了

8位bmp rgb图像

好的如果是8位的或者不知道多少位的bmp rgb图像的话,如果只是追求这个函数可以使用,那么,可以试试我这个方案

 F=imread('D:\Project\直方图均衡\Pic\1.bmp');
 F1=rgb2gray(F);
 F2 = histeq(F1);
 figure,imshow(F2,[])

其他操作同上

16位 raw文件读取

怎么读取找了半天,不重开一个文章了都记录在这吧
下面两行代码,把从fid读取到的数据存放到b这个数组里,[300,200]是文件大小,注,第一个参数一定要对,第二个无所谓。‘int16’是数据格式,8位的话就int8

fid=fopen('D:\Project\直方图均衡\Pic\0.Raw', 'r');
[b,count]=fread(fid,[300,200],'int16');

好的,另外你应该知道那个‘’单引号内部的是图像路径吧? 还有就是matlab左边的那个路径在的地方,被matlab视为根位置,对放在这个地方的文件不用前面的那一堆,可以直接写文件名,懂吧?

16位图 代码

不知道matlab代码怎么插入,用的lua脚本的格式凑合着看吧

function [img2] = a(img)
    img1 = double(img);
    [r,c] = size(img1);%获取图像的高r和宽c
    %统计图像中每个灰度级i出现的次数存到count(1,i)里
    count = zeros(1,65536);
    for i=1:r
        for j=1:c
            count(1,img(i,j)+1) = count(1,img(i,j)+1)+1;
        end
    end
    %统计图像中每个灰度级i出现的概率,存储到p(1,i)里
    p = zeros(1,65536);
    for i=1:65536
        p(1,i) = count(1,i)/(r*c);
    end
    img2 = im2uint8(ones(r,c));%创建一个r * c大小的1矩阵
    
    func_T = zeros(1,65536);%变换映射存储
    p_sum = 0;
    %求直方图均衡化的变换函数
    for k = 1:65536
        p_sum = p_sum + p(k);%求每个灰度级的概率之和
        func_T(k) = 255*p_sum;%根据变换函数的公式求每一点k对应的映射值
    end
    
    func_T_z =  round(func_T);%对变换函数进行取整,round 为四舍五入取整
    %完成每个像素点的映射
    for i = 0:255
        findi = find(func_T_z==i);%找到灰度级为i的概率和
        len = length(findi);
        for j=1:len
            findj = find(img==(findi(j)-1));%进行对应每个像素点的映射
            img2(findj) = i;
        end
    end
end

不确定有没有bug,觉得有问题的千万指出....把这个保存成a.mat文件放在matlab目录里,就可以直接调用啦,传入数组是刚从raw里读出来的b。

参考:

matlab实现 图像的直方图均衡化处理 直方图均衡化 代码

目录
相关文章
|
19天前
|
算法 数据安全/隐私保护
织物图像的配准和拼接算法的MATLAB仿真,对比SIFT,SURF以及KAZE
本项目展示了织物瑕疵检测中的图像拼接技术,使用SIFT、SURF和KAZE三种算法。通过MATLAB2022a实现图像匹配、配准和拼接,最终检测并分类织物瑕疵。SIFT算法在不同尺度和旋转下保持不变性;SURF算法提高速度并保持鲁棒性;KAZE算法使用非线性扩散滤波器构建尺度空间,提供更先进的特征描述。展示视频无水印,代码含注释及操作步骤。
|
1月前
|
算法 数据可视化 数据安全/隐私保护
基于LK光流提取算法的图像序列晃动程度计算matlab仿真
该算法基于Lucas-Kanade光流方法,用于计算图像序列的晃动程度。通过计算相邻帧间的光流场并定义晃动程度指标(如RMS),可量化图像晃动。此版本适用于Matlab 2022a,提供详细中文注释与操作视频。完整代码无水印。
|
3月前
|
算法
基于粒子群优化的图像融合算法matlab仿真
这是一个基于粒子群优化(PSO)的图像融合算法,旨在将彩色模糊图像与清晰灰度图像融合成彩色清晰图像。在MATLAB2022a中测试,算法通过PSO求解最优融合权值参数,经过多次迭代更新粒子速度和位置,以优化融合效果。核心代码展示了PSO的迭代过程及融合策略。最终,使用加权平均法融合图像,其中权重由PSO计算得出。该算法体现了PSO在图像融合领域的高效性和融合质量。
|
4月前
|
机器学习/深度学习 算法 固态存储
m基于深度学习的卫星遥感图像轮船检测系统matlab仿真,带GUI操作界面
在MATLAB 2022a中,使用GoogLeNet对卫星遥感图像进行轮船检测,展示了高效的目标识别。GoogLeNet的Inception架构结合全局平均池化增强模型泛化性。核心代码将图像切块并分类,预测为轮船的部分被突出显示,体现了深度学习在复杂场景检测中的应用。
397 8
|
4月前
|
算法 计算机视觉 异构计算
基于FPGA的图像一维FFT变换IFFT逆变换verilog实现,包含tb测试文件和MATLAB辅助验证
```markdown ## FPGA 仿真与 MATLAB 显示 - 图像处理的 FFT/IFFT FPGA 实现在 Vivado 2019.2 中仿真,结果通过 MATLAB 2022a 展示 - 核心代码片段:`Ddddddddddddddd` - 理论:FPGA 实现的一维 FFT/IFFT,加速数字信号处理,适用于高计算需求的图像应用,如压缩、滤波和识别 ```
|
4月前
|
算法 计算机视觉
基于Chan-Vese算法的图像边缘提取matlab仿真
**算法预览展示了4幅图像,从边缘检测到最终分割,体现了在matlab2022a中应用的Chan-Vese水平集迭代过程。核心代码段用于更新水平集并显示迭代效果,最后生成分割结果及误差曲线。Chan-Vese模型(2001)是图像分割的经典方法,通过最小化能量函数自动检测平滑区域和清晰边界的图像分割,适用于复杂环境,广泛应用于医学影像和机器视觉。**
|
5月前
|
算法 数据安全/隐私保护 C++
基于二维CS-SCHT变换和扩频方法的彩色图像水印嵌入和提取算法matlab仿真
该内容是关于一个图像水印算法的描述。在MATLAB2022a中运行,算法包括水印的嵌入和提取。首先,RGB图像转换为YUV格式,然后水印通过特定规则嵌入到Y分量中,并经过Arnold置乱增强安全性。水印提取时,经过逆过程恢复,使用了二维CS-SCHT变换和噪声对比度(NC)计算来评估水印的鲁棒性。代码中展示了从RGB到YUV的转换、水印嵌入、JPEG压缩攻击模拟以及水印提取的步骤。
|
4月前
|
算法 计算机视觉 异构计算
基于FPGA的图像直方图均衡化处理verilog实现,包含tb测试文件和MATLAB辅助验证
摘要: 在FPGA上实现了图像直方图均衡化算法,通过MATLAB2022a与Vivado2019.2进行仿真和验证。核心程序涉及灰度直方图计算、累积分布及映射变换。算法旨在提升图像全局对比度,尤其适合低对比度图像。FPGA利用可编程增益器和查表技术加速硬件处理,实现像素灰度的均匀重分布,提升视觉效果。![image preview](https://ucc.alicdn.com/pic/developer-ecology/3tnl7rfrqv6tw_a075525027db4afbb9c0529921fd0152.png)
|
5月前
|
算法 异构计算
基于直方图的图像曝光量分析FPGA实现,包含tb测试文件和MATLAB辅助验证
该内容包括了算法的运行效果展示、软件版本信息、理论概述和核心程序代码。在正常图像中,`checkb`位于`f192b`和`f250b`之间,而多度曝光图像中`checkb`超出此范围,判断为曝光过度。使用的软件为Vivado 2019.2和MATLAB 2022a。理论依据未详细给出,但提及主要方法。提供的Verilog代码段用于处理图像数据,包括读取文件、时钟控制及图像histogram计算等,其中模块`im_hist`似乎是关键部分。
|
5月前
|
存储 算法 数据可视化
基于harris角点和RANSAC算法的图像拼接matlab仿真
本文介绍了使用MATLAB2022a进行图像拼接的流程,涉及Harris角点检测和RANSAC算法。Harris角点检测寻找图像中局部曲率变化显著的点,RANSAC则用于排除噪声和异常点,找到最佳匹配。核心程序包括自定义的Harris角点计算函数,RANSAC参数设置,以及匹配点的可视化和仿射变换矩阵计算,最终生成全景图像。

热门文章

最新文章