【图像提取】鱼眼图像有效区域提取【含Matlab源码 2186期】

✅博主简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,Matlab项目合作可私信。
🍎个人主页:海神之光
🏆代码获取方式:
海神之光Matlab王者学习之路—代码获取方式
⛳️座右铭:行百里者,半于九十。

更多Matlab仿真内容点击👇
Matlab图像处理(进阶版)
路径规划(Matlab)
神经网络预测与分类(Matlab)
优化求解(Matlab)
语音处理(Matlab)
信号处理(Matlab)
车间调度(Matlab)

⛄一、鱼眼图像

1 鱼眼图像研究
随着信号处理和图像处理技术的发展,基于鱼眼全景监控摄像头的视觉处理技术得到快速发展,中国已于2013年底发射“嫦娥三号”,搭载的“玉兔号”月球车所配备的就是全景摄像头,拍摄的全景图和展开图如图1所示。另外,鱼眼镜头还广泛应用于全景安全监控、地铁走廊监控等长距离和大场地空间,相较一般的摄像头,其视场角接近于180°甚至超过180°,所以相比普通镜头,鱼眼镜头能够拍摄到更大场景画面,获取到更多的空间信息。为了捕获更多的信息,目前高清鱼眼镜头也得到了广泛应用,它所获得的图像对校正有着更高的要求,图2是1 080p高清鱼眼镜头所拍摄的鱼眼图像, 分辨率达到1 920×1 280,单帧图像像素点数目高达250万。 当镜头的视场角由几十度提高到180°时,图像将产生严重畸变[,所以对校正的时间复杂度和计算量有很大的挑战。

针对鱼眼大广角畸变图像的校正研究,目前也已经相当成熟,鱼眼图像校正的关键在于准确提取出鱼眼图像的有效区域, 同时确定出有效区域的中心和半径。本文主要研究针对高清鱼眼镜头的实时视频监控,提出的算法可以在不降低提取精度的图1玉兔号拍摄的全景图及校正图同时,显著降低鱼眼图像有效区域提取的时间复杂度和计算量, 将以往算法[2,3,4,5,6]的200万计算量降低到万量级以下。

2 鱼眼图像校正原理
针对鱼眼图像校正模型的研究,主要有基于经度坐标的校正模型、等距投影校正模型、球面透视投影模型和基于内容的校正模型,但是对于超过180°的超大广角鱼眼镜头,一般目前应用最多的是球面透视投影模型,文献[2]提出一种透视投影模型,空间点到鱼眼图像点的坐标变换不是简单的线性转换,且给出如下流程[2]:第一步,建立空间点P与球面中心圆点的关系,即向量OP;第二步,通过向量OP得到空间点P与球面模型映射点的关系;第三步,通过模型计算得到球面点与投影点的关系。

如图3所示,球面上的点与投影点保持一一映射的关系, 这种投影关系可以由m=D§来表示;反之,为了逆向得到校正输出点,通过p=D-1(m)即可得到,通过这种映射关系,就可以实现对畸变图像的校正。

在这里插入图片描述
图3 鱼眼校正模型

3 鱼眼图像的有效区域提取
3.1 算法原理

根据鱼眼图像的特征,相比较黑色像素部分,有效区域基本占据了整幅鱼眼图像的大部分区域,目前对于鱼眼畸变图像的有效提取主要有4种算法:最小二乘拟合算法[3]、面积统计算法[4]、区域生长算法[5]和逐行逐列扫描线[6]算法。其中最小二乘拟合算法和面积统计算法由于是对整幅鱼眼畸变图像的所有像素点进行扫描判断,因此其时间复杂度和空间复杂度都要比逐行逐列扫描线算法要高,故在实际应用中, 应用最广的也是算法最成熟的是逐行逐列扫描线算法。当对高清图像进行处理时,单帧像素点数目高达250万,即使是应用最多的逐行逐列扫描线算法,有效计算量一般也在百万次以上,计算量相当大。为了减少计算量和复杂度,本文提出的算法思路是首先划定一特定水平分割线,由此寻找最接近边界线的范围区域,减少不必要像素点的检测,然后再在此区域内精确寻找有效区域边界线。

3.2 算法具体实现过程
鱼眼图像有效区域的左右边界线的确定流程如图4所示。
在这里插入图片描述
图4 有效区域左右边界线提取流程

步骤1:首先在鱼眼图像的水平中间线上进行边界点的扫描,如图5所示。P1P2所在直线为水平分割线,其位置是鱼眼图像高度的1/2,先如向右箭头方向扫描。
在这里插入图片描述
图5 分割线扫描算法
步骤2:由式(1)计算出当前点的像素亮度值
I=0.59R+0.11G+0.3B(1)
将该点像素亮度值I与下一点的像素亮度值Incxt进行比较,由式(2)判断其差值是否满足条件
在这里插入图片描述
式中:T为预设阈值,如果当前点满足上述条件,则将该点设为临时边界点,在图5中标为P1点;如果不满足上述条件,则继续下一点的比较。同理,如向左箭头方向扫描,计算该点像素亮度值是否满足式(2),如果满足条件,则将该点设为临时右边界点,图中标为P2点;如果不满足上述条件,则继续下一点的比较。其中P1和P2点并不一定恰好是鱼眼图像有效区域的边缘,这是由于鱼眼图像中可能存在的黑色像素导致的,如果鱼眼图像中边缘有黑色物体,单纯地由水平分割线上的点的关系无法实现准确的有效区域边缘识别,所以进行如下计算。

步骤3:以P1点为起点,作P1P2线的垂线段,此垂线段的高度为鱼眼图像高度的1/2,如图2所示的鱼眼图像,鱼眼图像的有效区域基本位于整幅鱼眼图像的中间位置,因此为减少不必要的计算量,垂线段的高度为鱼眼图像的1/2即可达到提取目标,这也通过实验证实了其可行性,然后向鱼眼图像边缘方向移动,由式(1)计算此垂线段上的每个点的像素亮度值,并由式(3)求得最大亮度值与最小亮度值之差,即极限亮度值之差
在这里插入图片描述
式中:Δ 为极限亮度值之差。再由式(4)判断极限亮度值之差是否满足条件
在这里插入图片描述
式中:Δnext为下一个扫描线段的极限亮度值之差。

如果满足上述条件,则将下一点所在的纵向直线设为鱼眼图像有效区域的左边界线;如果不满足上述条件,则继续下一点所在垂线上的极限亮度值之差的比较。

步骤4:与步骤3原理相同,以P2点为起点,作P1P2线的垂线段,此垂线段的高度为鱼眼图像高度的1/2,并向鱼眼图像边缘方向移动,计算此垂线上所有点的极限亮度值之差是否满足式(4),如果满足此条件,则将下一点所在的纵向直线设为鱼眼图像有效区域的右边界线;如果不满足,则继续下一点所在垂线上的极限亮度值之差的比较。

鱼眼图像有效区域的上下边界线的提取流程如图6所示。

步骤5:确定出鱼眼图像有效区域的左右边界线之后,以P1P2的中点作P1P2的垂线Q1Q2,从此垂线交于鱼眼图像的上边缘点开始向内移动,如图5所示,由式(1)计算当前点的像素亮度值,并判断是否与下一点的亮度值之差满足式(2),如果满足此条件,则将下一点设为临时上边界点,在图中标为Q1点;如果不满足上述条件,则继续下一点像素亮度值的比较。同理,从此垂线交于鱼眼图像的下边缘点开始向内移动,由式(1)计算当前点的像素亮度值与前一点的亮度值之差是否满足式(2),如果满足此条件,则将下一点设为临时下边界点,在图中标为Q2点;如果不满足上述条件,则继续下一点像素亮度值的比较。其中Q1和Q2点并不一定恰好是鱼眼图像有效区域的边缘,这与P1和P2点也不恰好是边缘点的原因一样,这都是由鱼眼图像中可能存在的黑色像素导致的。
在这里插入图片描述
图6 有效区域上下边界线提取过程

步骤6:同样为了减小鱼眼图像有效区域中的黑色像素带来的检测误差,对上下边界线的确定进行如下处理,以临时上边界点Q1为起点,作Q1Q2的垂线段,此垂线段的长度为鱼眼图像宽度的1/2,并向鱼眼图像的边缘移动,由式(3)求得此垂线段上的最大亮度值与最小亮度值之差,即极限亮度值之差,然后判断极限亮度值之差是否满足式(4),如果满足此条件,则将下一点所在的水平直线设为鱼眼图像有效区域的上边界线;如果不满足此条件,则继续下一点所在垂线上的极限亮度值之差的比较。

步骤7:同步骤6原理相同,以临时下边界点Q2为起点, 作Q1Q2的垂线段,此垂线段的长度为鱼眼图像宽度的1/2,并向鱼眼图像的边缘移动,判断极限亮度值之差是否满足式(4),如果满足此条件,则将下一点所在的水平直线设为鱼眼图像有效区域的下边界线;如果不满足上述条件,则继续下一点所在垂线上的极限亮度值之差的比较。

3.3 有效区域中心与半径的确定
如果鱼眼图像有效区域为标准圆形,其圆心坐标和半径即可简单表示为
在这里插入图片描述
式中:xL,xR,yT和yB分别为有效区域左分界线横坐标、右边界线横坐标、上分界线纵坐标和下分界线纵坐标;x ,y和R分别为所求鱼眼图像的中心坐标和半径;Rm为有效区域水平半径;Rn为有效区域竖直半径。如果Rm= Rn,则有效区域为非标准圆形,则必有Rm≠Rn,由于本算法是基于水平分割线和竖直分割线进行的边界确定,因此为了能够更加准确地获取到鱼眼图像有效区域的中心和半径。本文将对原鱼眼图像进行一特定θ角度的旋转[7],基于不同的水平分割线和竖直分割线进行中心点坐标和半径大小的提取,然后将每次得到的一组半径Ri和中心坐标 (xi,yi)求取算术平均值
在这里插入图片描述

⛄二、部分源代码

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.59r(i,j)+0.11g(i,j)+0.3b(i,j);
if t1>threshold
t2=0.59
r(i+1,j)+0.11g(i+1,j)+0.3b(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

⛄三、运行结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

⛄四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1] 程德强,刘洋,柳雪,赵国,张佳琳.分割线扫描鱼眼图像有效区域提取算法[J].电视技术. 2015,39(06)

3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除

🍅 仿真咨询
1 各类智能优化算法改进及应用

生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化

2 机器学习和深度学习方面
卷积神经网络(CNN)、LSTM、支持向量机(SVM)、最小二乘支持向量机(LSSVM)、极限学习机(ELM)、核极限学习机(KELM)、BP、RBF、宽度学习、DBN、RF、RBF、DELM、XGBOOST、TCN实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断

3 图像处理方面
图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知

4 路径规划方面
旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、车辆协同无人机路径规划、天线线性阵列分布优化、车间布局优化

5 无人机应用方面
无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配

6 无线传感器定位及布局方面
传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化

7 信号处理方面
信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化

8 电力系统方面
微电网优化、无功优化、配电网重构、储能配置

9 元胞自动机方面
交通流 人群疏散 病毒扩散 晶体生长

10 雷达方面
卡尔曼滤波跟踪、航迹关联、航迹融合

  • 16
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值