文章目录
00 写在前面
在超分任务、医学图像重建、图片生成等等任务中,经常需要用到局部放大图,来观察网络的重建效果。
以下给出了基于matlab的局部图片放大代码,并对开头的图像进行放大。
01 基于Matlab的局部图片放大代码
%% 读取待放大图像
clc;clear;close all;
im = imread('Figure3.png');
% im = imread('t2star_layer11_w_dy.bmp');
%% 在图像中局部显示矩形框
X = 160; %矩形框左上角的横坐标
Y = 160; %矩形框左上角的纵坐标
dX = 80;
dY = 80;
% X = 160; %矩形框左上角的横坐标
% Y = 240; %矩形框左上角的纵坐标
% dX = 80;
% dY = 80;
bbox = [X, Y, dX, dY];
im_1 = insertShape(im, 'Rectangle', bbox, 'LineWidth', 2, 'Color', 'red');
%% 裁剪和局部并插值放大
scale = 1.8;
im_crop = imcrop(im, bbox);
im_crop_b = imresize(im_crop, scale, 'bicubic');
%% 局部显示
[row_1, col_1, ~] = size(im);
[row_2, col_2, ~] = size(im_crop_b);
im_2 = im_1;
% 局部放大图放在左下角
im_2(row_1-row_2+1:col_1, 1:col_2, :) = im_crop_b;
bbox = [1,row_1-row_2+1,col_2,row_2];
% 局部放大图放在右下角
% im_2(row_1-row_2+1:col_1, col_1-col_2+1:row_1, :) = im_crop_b;
% bbox = [col_1-col_2+1,row_1-row_2+1,col_2,row_2];
im_2 = insertShape(im_2, 'Rectangle', bbox, 'LineWidth', 1, 'Color', 'w');
figure;imshow(im_2);
% figure;imshow(im_crop_b);
%% 保存为.PNG格式文件
% imwrite(im_2,'layer14s_local.png');