clear all;
clc;
global threshold;
threshold=30;
m=imread('fisheye.jpg');
%figure('king');
figure('NumberTitle', 'off', 'Name', '原始图片');
imshow(m);
r=m(:,:,1);
g=m(:,:,2);
b=m(:,:,3);
r1=r;
g1=g;
b1=b;
[x,y,z]=size(m);
flag=0;
l(8)=[0];
%_____________________________________上边界________________________________________________________
for i=1:x
for j=1:y
if flag==0
t1=0.59*r(i,j)+0.11*g(i,j)+0.3*b(i,j);
if t1>threshold
t2=0.59*r(i+1,j)+0.11*g(i+1,j)+0.3*b(i+1,j);
if t2>threshold
disp('hello world!:上边界');
l(1)=i;
l(2)=j;
r(i,:) = 255;
g(i,:) = 0;
b(i,:) = 0;
flag=1;
end
end
end
end
if flag==1
break;
end
end
flag=0;
%_____________________________________下边界________________________________________________________
for i=x:-1:1
for j=1:y
if flag==0
t1=0.59*r(i,j)+0.11*g(i,j)+0.3*b(i,j);
if t1>threshold
t2=0.59*r(i-1,j)+0.11*g(i-1,j)+0.3*b(i-1,j);
if t2>threshold
disp('hello world!:下边界');
l(3)=i;
l(4)=j;
r(i,:) = 255;
g(i,:) = 0;
b(i,:) = 0;
flag=1;
end
end
end
end
if flag==1
break;
end
end
flag=0;
%_____________________________________左边界________________________________________________________
for j=1:y
for i=1:x
if flag==0
t1=0.59*r(i,j)+0.11*g(i,j)+0.3*b(i,j);
if t1>threshold
t2=0.59*r(i+1,j+1)+0.11*g(i,j+1)+0.3*b(i,j+1);
if t2>threshold
disp(i);
disp(j);
disp('hello world!:左边界');
l(5)=i;
l(6)=j;
r(:,j) = 255;
g(:,j) = 0;
b(:,j) = 0;
flag=1;
end
end
end
end
if flag==1
break;
end
end
flag=0;
%_____________________________________右边界________________________________________________________
for j=y:-1:1
for i=1:x
if flag==0
t1=0.59*r(i,j)+0.11*g(i,j)+0.3*b(i,j);
if t1>threshold
t2=0.59*r(i+1,j-1)+0.11*g(i,j-1)+0.3*b(i,j-1);
if t2>threshold
disp(i);
disp(j);
disp('hello world!:右边界');
l(7)=i;
l(8)=j;
r(:,j) = 255;
g(:,j) = 0;
b(:,j) = 0;
flag=1;
end
end
end
end
if flag==1
break;
end
end
%_____________________________________边界________________________________________________________
flag=0;
k(:,:,1)=r;
k(:,:,2)=g;
k(:,:,3)=b;
figure('NumberTitle', 'off', 'Name', '改变后图片');
imshow(k);
king(8)=[0];
king(1)=l(5);
king(2)=l(7);
king(3)=(l(1)+l(3))/2;
king(4)=l(2);
king(5)=l(4);
king(6)=(l(6)+l(8))/2;
king(7)=(l(3)-l(1))/2;
king(8)=(l(8)-l(6))/2;
if king(7)<king(8)
R=king(8);
else
R=king(7);
end
x0=king(6);
y0=king(3);
%_____________find the valide area___________________________
for i=l(1):l(3)
for j=l(6):l(8)
d=sqrt((j-x0)^2+(i-y0)^2);
if d>R
r(i,j) = 255;
g(i,j) = 0;
b(i,j) = 0;
else
y1=i;
z1=abs(i-y0);
z2=(sqrt(R^2-z1^2))*(j-x0)/R;
sum=x0+z2;
x1=uint8(sum);
r1(i,j)=r(y1,x1);
g1(i,j)=g(y1,x1);
b1(i,j)=b(y1,x1);
end
end
end
k(:,:,1)=r;
k(:,:,2)=g;
k(:,:,3)=b;
figure('NumberTitle', 'off', 'Name', '改变后图片0');
imshow(k);
没有合适的资源?快使用搜索试试~ 我知道了~
基于matlab实现图像鱼眼有效区域提取附Matlab代码
共6个文件
jpg:4个
m:1个
asv:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 129 浏览量
2022-10-23
20:34:15
上传
评论
收藏 55KB ZIP 举报
温馨提示
1.版本:matlab2019a,不会运行可私信博主 2.领域:【图像提取】 3.内容:基于matlab实现图像鱼眼有效区域提取附Matlab代码 4.适合人群:本科,硕士等教研学习使用
资源推荐
资源详情
资源评论
收起资源包目录
【图像提取】基于matlab实现图像鱼眼有效区域提取附Matlab代码 上传.zip (6个子文件)
fisheye.jpg 12KB
matlab123.asv 4KB
运行结果3.jpg 18KB
运行结果1.jpg 15KB
运行结果2.jpg 17KB
matlab123.m 4KB
共 6 条
- 1
资源评论
天天Matlab科研工作室
- 粉丝: 3w+
- 资源: 7258
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功