• 大小: 3KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-06-11
  • 语言: Matlab
  • 标签: 拼接    消除  

资源简介

以距离拼接缝的距离为变量,获得拼接缝两侧每一列像素的补偿值,从而达到使每一列像素差减小,从肉眼看来则是消除了拼接缝.matlab实现非常快速方便

资源截图

代码片段和文件信息

clc;clear;close all;
img_rgb = imread(C:\Users\Ray\Desktop\Brightness adjustment\outter_res\1.bmp‘);
% figure imshow(img_rgb);
% R = rgb2gray(img_rgb);
R = img_rgb(::1);
G = img_rgb(::2);
B = img_rgb(::3);
figure imshow(img_rgb);
[abc] = size(img_rgb);  %得到矩阵尺寸

mid1 = 148; 
mid2 = 149;   %缝位置
L = 80;    %缝区域宽度
k = 0.8;    %系数
w = k * L;  %改正宽度

%R
R0 = R(:mid1 - w+1 : mid2+w-1);
D1 = zeros(a2*w);
D2 = zeros(a2*w);
D = zeros(a2*w);
d = zeros(a 2*w);
dR = zeros(a 2*w);
R1 = zeros(a 2*w);
for m = 1:a 
%         D1(m:) = mean( R(m (mid1-L+1) : mid1 ));
%         D2(m:) = mean( R(m mid2 : (mid2+L-1) ));
        D1(m:) =  R(m mid1);  %缝左像素点处灰度值
        D2(m:) = R(m mid2); %缝右像素点处灰度值
        for n = 1:2*w
            D(mn) = (D1(mn) - D2(mn))/2;
            d(mn) = round( abs(n-(2*w+1)/2));  %像点到缝距离
            dR(mn) = (1 - d(mn)/w ).* D(mn);  %改变量
            if n <= w
            R1(mn) = R(mn + mid1 - w) - dR(mn);
            else
                R1(mn) = R(mn + mid1 - w) + dR(mn);
            end
        end
end
R (:mid1 - w+1 : mid2+w-1) = R1;

%G
G0 = G(:mid1 - w+1 : mid2+w-1);
D1 = zeros(a2*w);
D2 = zeros(a2*w);
D = zeros(a2*w);
d = zeros(a 2*w);
dG = zeros(a 2*w);
G1 = zeros(a 2*w);
for m = 1:a 
%         D1(m:) = mean( R(m (mid1-L+1) : mid1 ));
%         

评论

共有 条评论