⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 histmatching.m

📁 This is a MATLAB program for Histogram Matching. Used In digital Image Processing.
💻 M
字号:
clc
clear all
close all
orig = imread('F:\MUDDASSIR ASIF\SUBJECTS FILES\BCE-7\DIP\images_chapter_03\images_chapter_03\Fig3.15(a)3.jpg');
target = imread('F:\MUDDASSIR ASIF\SUBJECTS FILES\BCE-7\DIP\images_chapter_03\images_chapter_03\Fig3.15(a)4.jpg');

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% hist orig *****************************

% imshow(target);
% figure;
siz=size(orig);
gray_level=256;
orig2=orig;
y_ax=zeros(1,gray_level);
y_ax3=zeros(1,gray_level);
y_rep=zeros(2,gray_level);  % to store the replacing information

for i=1:siz(1)*siz(2)
    y_ax(orig(i)+1)=y_ax(orig(i)+1)+1;
end
% stem(y_ax)
% y_ax=y_ax/(siz(1)*siz(2)); 

for i=2:gray_level
    y_ax(i)=y_ax(i)+y_ax(i-1);
end
stem(y_ax)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% hist target *****************************

y_ax2=zeros(1,gray_level);

for i=1:siz(1)*siz(2)
    y_ax2(target(i)+1)=y_ax2(target(i)+1)+1;
end
% figure
% stem(y_ax2)
% y_ax2=y_ax2/(siz(1)*siz(2)); 

t=0;
t2=0;
for i=2:gray_level
    y_ax2(i)=y_ax2(i)+y_ax2(i-1);
end
figure;
stem(y_ax2)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%make y_ax like y_ax2%%%%%%%%%%%%%%%%%%%%%%%%%%%%
temp=1;
for i=1:gray_level
    for j=1:gray_level
        if(y_ax2(i)-y_ax(j)>=0)
             y_ax(i)=y_ax2(i);
% %             y_rep(1,i)=i;
% %             y_rep(2,i)=j;
            t=i;
            t2=j;
         end
    end
       y_rep(1,i)=t;
      y_rep(2,i)=t2;
%       temp=temp+1;
%       y_rep(1,temp)=t;
%       y_rep(2,temp)=t2;
%       temp=temp+1;
end
% y_ax=y_ax/(siz(1)*siz(2));
% y_ax=y_ax*gray_level;
figure
% stem(y_ax)

% for i=1:255
%     y_ax(256-i+1)=y_ax(256-i+1)-y_ax(256-i);
% end
% y_ax=y_ax/(siz(1)*siz(2));
% y_ax=y_ax*gray_level;
% stem(y_ax);
% sum(y_ax)
%
% t3=find(orig2==y_rep(1,91));
% orig2(t3)=y_rep(2,91);
% for i=1:255
%     orig2(find(orig2==y_rep(1,i)))=y_rep(2,i);
% end
% for i=1:siz(1)*siz(2)
%     orig2(i)=y_ax(orig(i));
% end
% stem(y_rep(2,:))
% figure
% imshow(orig2)
% figure
% imshow(orig)
% figure
% imshow(target)
% 
% for i=1:siz(1)*siz(2)
%     y_ax3(orig2(i)+1)=y_ax3(orig2(i)+1)+1;
% end
% stem(y_ax3)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -