您的位置:首页 > 编程语言 > MATLAB

论文中图片加方框并且放大显示 matlab代码

2017-09-07 20:03 846 查看
本文为转载,原博客地址:http://blog.csdn.net/majinlei121/article/details/52334227

[cpp] view
plain copy

function I_rgb = ShowEnlargedRectangle(I, LeftUpPoint, RightBottomPoint, Enlargement_Factor, LineWidth, gap)  

% example  I_rgb = ShowEnlargedRectangle(I, [10,20], [50,60], 1.5, 1)  

  

if size(I,3)==1  

    I_rgb(:,:,1) = I;  

    I_rgb(:,:,2) = I;  

    I_rgb(:,:,3) = I;  

else  

    I_rgb = I;  

end  

  

if ~exist('LineWidth','var')  

    LineWidth = 1;  

end  

  

if ~exist('Enlargement_Factor','var')  

    Enlargement_Factor = 1.5;  

end  

  

if ~exist('gap','var') %离左下方距离  

    gap = 1;  

end  

  

%% 画矩形  

I_rgb = DrawRectangle(I_rgb, LeftUpPoint, RightBottomPoint, LineWidth);  

  

%% 提取矩形区域内图像  

UpRow = LeftUpPoint(1);  

LeftColumn = LeftUpPoint(2);  

BottomRow = RightBottomPoint(1);  

RightColumn = RightBottomPoint(2);  

  

for i = 1 : size(I_rgb,3)  

    Patch(:,:,i) = I_rgb(UpRow + LineWidth:BottomRow  - LineWidth,LeftColumn  + LineWidth:RightColumn  - LineWidth,i);   

end  

  

%% 对提取到的区域进行放大  

% Enlargement_Factor = 0.5;  

Interpolation_Method = 'bilinear'; %bilinear,bicubic  

Enlarged = imresize(Patch,Enlargement_Factor,Interpolation_Method);  

  

%% 对放大的区域进行显示  

[m, n, c] = size(Enlarged);  

[row, ~, ~] = size(I_rgb);  

% EnlargedShowStartRow = row - 1 - LineWidth;  

% EnlargedShowStartColumn = 2 + LineWidth;  

% for j = 1 : c  

%     I_rgb(EnlargedShowStartRow - m + 1:EnlargedShowStartRow,EnlargedShowStartColumn:EnlargedShowStartColumn + n - 1,j) = Enlarged(:,:,j);   

% end  

EnlargedShowStartRow = row - gap - LineWidth;  

EnlargedShowStartColumn = 1 + gap + LineWidth;  

for j = 1 : c  

    I_rgb(EnlargedShowStartRow - m + 1:EnlargedShowStartRow,EnlargedShowStartColumn:EnlargedShowStartColumn + n - 1,j) = Enlarged(:,:,j);   

end  

  

%% 对放大显示后的区域画矩形  

Point1 = [EnlargedShowStartRow - m + 1 - LineWidth,EnlargedShowStartColumn - LineWidth];  

Point2 = [EnlargedShowStartRow + 1,EnlargedShowStartColumn + n -1 + 1];  

I_rgb = DrawRectangle(I_rgb, Point1, Point2, LineWidth);  

  

end  


其中的DrawRectangle()函数见博文论文中图片加方框
matlab代码调用主体函数

[cpp] view
plain copy

clear  

  

I = imread('lena.png');  

  

I1 = ShowEnlargedRectangle(I,[326,96],[368,138],3,2,2);  

% figure;imshow(I);  

figure;imshow(I1);</span>  

结果图像

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: