关闭

[图像去雾](一)限制对比度的自适应直方图均衡化(CLAHE)的学习体会——图像分块

标签: 图像处理
990人阅读 评论(0) 收藏 举报

最近研究图像去雾算法,作为菜鸟,慢慢学习。


算法原理参考以下两个链接:

http://www.cnblogs.com/Imageshop/archive/2013/04/07/3006334.html

http://blog.csdn.net/u010839382/article/details/49584181


我采用图像分块计算映射函数再插值增强的方法,可以把算法实现分为以下几个步骤:

(1)输入原图进行图像分块

(2)计算子图像块的CDF,映射函数

(3)逐像素根据插值原则,进行插值运算

(4)输出处理结果图


选取的测试图像(长551/宽375)


第一步:图像分块

参考帖子:http://www.matlabsky.com/thread-11379-1-1.html

该贴固定图像块大小为64*64个像素

下面修改的程序(MATLAB)可以设置图像块的数目为num*num,下边和右边不能被8整除的,则根据剩余大小存储。

<pre name="code" class="java">%局部直方图均衡化  

num = 8;
%将图像分成num*num块
h = ceil(height/num); w = ceil(width/num);

%子图像块起始行列号向量
t1 = (0:num-1)*h + 1; t2 = (1:num)*h;
t3 = (0:num-1)*w + 1; t4 = (1:num)*w;
figure; 
k = 0;
for i = 1 : num
    for j = 1 : num   
        if(i<num && j<num)
            temp = I(t1(i):t2(i), t3(j):t4(j),:);
        else
            if i == num && j~=num
            temp = I(t1(i):height, t3(j):t4(j),:);
            end
            if j == num && i~=num
             temp = I(t1(i):t2(i), t3(j):width,:);
            end
            if i == num && j==num
             temp = I(t1(i):height, t3(j):width,:);
            end
        end
        k = k + 1;
        subplot(num, num, k);
        imshow(temp);
    end
end



分块效果如下:

num=2


num=8


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1006次
    • 积分:19
    • 等级:
    • 排名:千里之外
    • 原创:1篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档