MATLAB census变换实现

本文介绍了如何使用Census操作进行图像处理,通过window_size大小的窗口滑动,计算每个窗口内像素与中心像素的差异,并将二进制列表转换为十进制表示。重点展示了代码实现和bin2dec函数的作用,适用于图像特征提取和比较。
摘要由CSDN通过智能技术生成
% function   census(image,window_size)
[h,w] = size(image);
window_size  = 3;
pading_size =  (window_size - 1) /2;
win_center = (window_size +1)/2;
after_padding = [zeros(h,pading_size),image,zeros(h,pading_size)];
after_padding = [zeros(pading_size,2*pading_size +w);after_padding;zeros(pading_size,2*pading_size +w)];

census_image = zeros(h,w);

for i = 1:h
    for j = 1:w
        win = after_padding(i:i+window_size-1,j:j + window_size-1);
        a = win - win(win_center,win_center);
        b = a>0;
        list = reshape(b,1,window_size.^2);
        list(5) = [];
        c = bin2dec(list);
        census_image(i,j) = c;
    end
end

% end

其中二进制列表转化为十进制数的代码如下:

function  dec = bin2dec(list)
L = length(list);
b = 0:L-1;
c = 2.^b;
dec = sum(c.*list);
end
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值