论文中图片加方框并且放大显示 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>
结果图像
[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>
结果图像
相关文章推荐
- 论文中图片加方框并且放大显示 matlab代码
- TextView加载html代码显示图片,并且支持图片放大功能
- 论文中图片加方框 matlab代码
- 论文中图片加方框 matlab代码
- VC中打开一幅jpg图片并且显示在对话框上的方法和代码
- 【转】使用matlab软件打开一幅图片并且分别提取其中的RGB分量并显示
- js鼠标移上去当前放大图片突出显示特效代码
- 使图片放大添满方框,并显示方框中的图片
- 使用matlab软件打开一幅图片并且分别提取其中的RGB分量并显示
- 用matlab转换图片为C代码,实现液晶屏显示
- 用css来控制图片大小显示的实现方法与代码
- 超简洁CSS代码感应鼠标放大图片
- JavaScript预加载图片并显示loading的代码
- C#代码怎样在Windows窗体中显示从数据库读出的图片
- 原创JS图片放大效果(二) — 多图点击切换,鼠标移上放大 代码很美,步履不停
- ListView控件显示 图片加文字说明 并且可以对滚动条进行控制
- OpenCV stereo matching 代码 matlab实现视差显示
- 点击放大图片js+css代码,可以关闭
- iPhone 开发中如何将制作图片放大缩小代码实现案例
- 代码笔记——Toast显示文本,图片,图文