【庖丁解牛】机器视觉核心算法之圆环展开

机器视觉核心算法之圆环展开


作为全球某机器视觉头部大厂的资深工程师,深感学校和互联网上主要资料局限于计算机视觉领域,能落地工业领域的算法寥寥无几,且相关算法原理语焉不详、乏善可陈,或示例代码缺少关键实现、谬误百出, 故作【庖丁解牛】系列课程,掰开揉碎了讲解机器视觉领域核心算法,并提供完整的高质量代码,力争为从业者提供严格贴近工业应用场景的、高质量的国际一线算法剖析
本系列课程围绕工业视觉算法原理及实现,具体场景落地应考虑的工程实践化设计要点及经验,笔者将在其他系列课程中讲解。
庖丁解牛本期公开课的主题是 圆环展开

术语解释

顾名思义,圆环展开是将指定圆环展开为矩形。

几何基础

如图1所示,圆环内径为r,外径为R,圆心为O。
图1 圆环展开示意图
设圆心O坐标为 ( x 0 , y 0 ) (x0,y0) (x0,y0),射线PO到射线OC1的夹角为θ,由几何知识可知:
内圆上点P的坐标 ( x , y ) (x,y) (x,y)为:
x = x 0 + r ∗ c o s θ y = y 0 − r ∗ s i n θ x = x0 + r * cosθ\\ y = y0 - r * sinθ x=x0+rcosθy=y0rsinθ
外圆上点P’的坐标 ( x ′ , y ′ ) (x',y') (x,y)为:
x ′ = x 0 + R ∗ c o s θ y ′ = y 0 − R ∗ s i n θ x' = x0 + R * cosθ\\ y' = y0 - R * sinθ x=x0+Rcosθy=y0Rsinθ
同理可知,若点P落在以O为圆心,半径为Radius(r≤Radius≤R)的圆周上,则其坐标 ( X , Y ) (X,Y) (X,Y)为:
X = x 0 + R a d i u s ∗ c o s θ Y = y 0 − R a d i u s ∗ s i n θ X = x0 + Radius * cosθ\\ Y = y0 - Radius * sinθ X=x0+RadiuscosθY=y0Radiussinθ

原理推导

首先要确定展开矩形图像的宽和高。在此,我们不假思索地给出以下结论:
D s t W i d t h = ( r + R ) ∗ 2 π ∗ 0.5 D s t H e i g h t = R − r \begin{align*} & DstWidth = (r + R) * 2π * 0.5 & \\ & DstHeight = R - r & \end{align*} DstWidth=(r+R)2π0.5DstHeight=Rr
然后,要确定展开矩形图像中,第i行第j列像素点的灰度值。
假设图1中,点C1到G1连线方向为圆环展开的起始方向,由【原理推导】小节结论可知,展开矩形图像中,第i行第j列像素点对应原图像中的坐标为:
x = x 0 + ( r + i ) ∗ c o s ( j ∗ 2 π / D s t W i d t h ) y = y 0 − ( r + i ) ∗ s i n (

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值