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

📄 color.m

📁 滤波器与伪彩色变换
💻 M
字号:
%--------------------------------------------------------
%伪彩色处理
%输入:
%           Dred:     低通滤波,参数D,作为红色分量
%           Dblue1:   带通滤波参数D1,作为蓝色分量
%           Dblue2:   带通滤波参数D2,作为蓝色分量
%           Dgreen:   高通滤波参数D,作为绿色分量
%输出:
%           经过各种滤波后的图片
%--------------------------------------------------------



function color(Dred,Dblue1,Dblue2,Dgreen);


%参数的定义
%Dred = 5;
%Dblue1 = 4;
%Dblue2 = 20;
%Dgreen = 50;

%读入输入图象
lena = imread('lenna','bmp');
;lena = double(lena);
%输出原图象以用来对比;
figure,subplot(1,2,1);
imshow(lena,[]);
title('原始图象');

%进行二维傅立叶变换;
le_fft = fft2(lena);
[x,y] = size(lena);

le_fft_1 = zeros(x,y);
mid_x = x/2;
mid_y = y/2;

%将低频部分移到中心;
le_fft_1 = movetocenter(le_fft);

%获得红色分量;
H_red = zeros(x,y);
for i = 1:x
    for j = 1:y
        if(sqrt((i-mid_x)^2+(j-mid_y)^2) <= Dred)
            H_red(i,j) = 1;
        end
    end
end

G_red =zeros(x,y);
for i = 1:x
    for j = 1:y
        G_red(i,j) = le_fft_1(i,j) * H_red(i,j);
    end
end
le_red = abs(ifft2(G_red));
%figure,imshow(le_red,[])
%title('red');
%获得绿色分量;
H_blue = zeros(x,y);
for i = 1:x
    for j = 1:y
        if((sqrt((i-mid_x)^2+(j-mid_y)^2)>=Dblue1)&(sqrt((i-mid_x)^2+(j-mid_y)^2)<=Dblue2))
            H_blue(i,j) = 1;
        end
    end
end

G_blue =zeros(x,y);
for i = 1:x
    for j = 1:y
        G_blue(i,j) = le_fft_1(i,j) * H_blue(i,j);
    end
end
le_blue = abs(ifft2(G_blue));
%figure,imshow(le_blue,[])
%title('blue');
%获得绿色分量;
H_green = zeros(x,y);
for i = 1:x
    for j = 1:y
        if(sqrt((i-mid_x)^2+(j-mid_y)^2) > Dgreen)
            H_green(i,j) = 1;
        end
    end
end

G_green =zeros(x,y);
for i = 1:x
    for j = 1:y
        G_green(i,j) = le_fft_1(i,j) * H_green(i,j);
    end
end
le_green = abs(ifft2(G_green));
%figure,imshow(le_green,[])
%title('green');

result = cat(3,le_red./255,le_blue./255,le_green./255);

subplot(1,2,2);
imshow(result,[]);
title('彩色图象');

⌨️ 快捷键说明

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