📄 代码19-5.txt
字号:
I = imread('board.tif'); % 读入图像
I = I(50+[1:256],2+[1:256],:); % 图像剪切
figure; % 新建窗口
imshow(I); % 显示原始图像
title('Original Image'); % 显示图像标题
text(size(I,2),size(I,1)+15, ... % 标注文字
'Image courtesy of courtesy of Alexander V. Panasyuk, Ph.D.', ...
'FontSize',7,'HorizontalAlignment','right');
text(size(I,2),size(I,1)+25, ... % 标注文字
'Harvard-Smithsonian Center for Astrophysics', ...
'FontSize',7,'HorizontalAlignment','right');
PSF = fspecial('gaussian',5,5); % 设置滤波器
Blurred = imfilter(I,PSF,'symmetric','conv'); % 图像卷积计算
figure; % 新建窗口
imshow(Blurred); % 显示处理后的图像
title('Blurred'); % 显示图像标题
V = .002; % 设定方差
BlurredNoisy = imnoise(Blurred,'gaussian',0,V); % 添加噪声
figure; % 新建窗口
imshow(BlurredNoisy); % 显示处理后的图像
title('Blurred & Noisy'); % 显示图像标题
luc1 = deconvlucy(BlurredNoisy,PSF,5); % 反复处理5次
figure; % 新建窗口
imshow(luc1); % 显示处理后的图像
title('Restored Image, NUMIT = 5'); % 设置图像标题
luc1_cell = deconvlucy({BlurredNoisy},PSF,5); % 细胞数组
luc2_cell = deconvlucy(luc1_cell,PSF); % 细胞数组
luc2 = im2uint8(luc2_cell{2}); % 数据类型转换
figure; % 新建窗口
imshow(luc2); % 显示处理后的图像
title('Restored Image, NUMIT = 15'); % 设置图像标题
DAMPAR = im2uint8(3*sqrt(V)); % 数据类型转换
luc3 = deconvlucy(BlurredNoisy,PSF,15,DAMPAR); % 反复处理15次
figure; % 新建窗口
imshow(luc3); % 显示处理后的图像
title('Restored Image with Damping, NUMIT = 15'); % 设置图像标题
I = zeros(32); % 生成全零矩阵,反色后为图像中的白色
I(5,5)=1; % 设置矩阵元素值为1,反色后为图像中的黑色
I(10,3)=1; % 设置矩阵元素值为1,反色后为图像中的黑色
I(27,26)=1; % 设置矩阵元素值为1,反色后为图像中的黑色
I(29,25)=1; % 设置矩阵元素值为1,反色后为图像中的黑色
figure; % 新建窗口
imshow(1-I,[],'InitialMagnification','fit'); % 图像反色
set(gca,'Visible','on','XTickLabel',[],'YTickLabel',[],... % 设置图形窗口属性
'XTick',[7 24],'XGrid','on','YTick',[5 28],'YGrid','on');
title('Data'); % 设置图像标题
PSF = fspecial('gaussian',15,3); % 设置滤波器
Blurred = imfilter(I,PSF,'conv','sym'); % 图像卷积计算
WT = zeros(32); % 权重数组
WT(6:27,8:23) = 1; % 权重数组
CutImage = Blurred.*WT; % 加上权重数组进行掩膜处理
CutEdged = edgetaper(CutImage,PSF); % 边缘锐化
figure; % 新建窗口
imshow(1-CutEdged,[],'InitialMagnification','fit'); % 显示处理后的图像
set(gca,'Visible','on','XTickLabel',[],'YTickLabel',[],...% 设置图形窗口属性
'XTick',[7 24],'XGrid','on','YTick',[5 28],'YGrid','on');
title('Observed'); % 设置图像标题
luc4 = deconvlucy(CutEdged,PSF,300,0,WT); % 图像复原
figure; % 新建窗口
imshow(1-luc4,[],'InitialMagnification','fit'); % 显示处理后的图像
set(gca,'Visible','on','XTickLabel',[],'YTickLabel',[],... % 设置图形窗口属性
'XTick',[7 24],'XGrid','on','YTick',[5 28],'YGrid','on');
title('Restored'); % 设置图像标题
Binned = squeeze(sum(reshape(Blurred,[2 16 2 16]))); % 移去单独维
BinnedImage = squeeze(sum(Binned,2)); % 移去单独维
Binned = squeeze(sum(reshape(PSF(1:14,1:14),[2 7 2 7]))); % 移去单独维
BinnedPSF = squeeze(sum(Binned,2)); % 合成PSF
figure; % 新建图形窗口
imshow(1-BinnedImage,[],'InitialMagnification','fit'); % 显处理后的示图像
set(gca,'Visible','on','XTick',[],'YTick',[]); % 设置图形窗口属性
title('Binned Observed'); % 设置图像标题
luc5 = deconvlucy(BinnedImage,BinnedPSF,100); % 复原图像
figure; % 新建图形窗口
imshow(1-luc5,[],'InitialMagnification','fit'); % 显处理后的示图像
set(gca,'Visible','on','XTick',[],'YTick',[]); % 设置图形窗口属性
title('Poor PSF'); % 设置图像标题
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -