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

来源:互联网 发布:人工智能企业 编辑:程序博客网 时间:2024/05/16 12:55

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;endif ~exist('LineWidth','var')    LineWidth = 1;endif ~exist('Enlargement_Factor','var')    Enlargement_Factor = 1.5;endif ~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,bicubicEnlarged = 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); % endEnlargedShowStartRow = 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代码调用主体函数

clearI = imread('lena.png');I1 = ShowEnlargedRectangle(I,[326,96],[368,138],3,2,2);% figure;imshow(I);figure;imshow(I1);</span>

结果图像



0 0
原创粉丝点击