智能车图像处理入门 2

前言

第一篇我们在电脑上搭建了opencv环境以方便我们处理图像,并且成功对图像进行了二值化和压缩操作,接下来我们的目标很简单,就是找到图像的边界、并通过边界找到赛道中线。这一篇完成后,你应该可以实现巡线操作。

一、寻找图像的边界

目前我接触过两种图像边界的寻找方法,一个是八邻域,另一个是最长白列,两种算法各有优劣。

1、八邻域

我们先来讲八邻域,八邻域算法相比于最长白列的优点就是节省算力,因为它不需要大面积地遍历图像。

这里以左边界为例,讲解一下八邻域算法是怎么运作的。

如图是左边界的一部分,仔细观察,白道到边界都会有一个很明显的跳变。那么在寻找边界时,我们着重寻找白到黑的跳变点即可。

接下来,我们从边界上选择一个像素点C,并标出了与这个像素点相邻的8个像素点。
我们所要做的就是遍历相邻的这8个像素点,并找出由白到黑的跳变点(当前相邻点为255,且下个相邻点为0)就能找到左边界的其中一个像素点。

以这张图为例,我们确定了起始像素点C,然后开始在C的相邻点中找到跳变点。我们可以看到,第0个相邻点是白(255),第1个像素点是黑(0),正好满足从白到黑要求,那么我们认为,第0个相邻点是边界的一部分。
注意:第4个相邻点到第5个相邻点是从黑到白,并不符合我之前定义的从白到黑的跳变点,所以将会舍去。

接下来该怎么办?

我们已经搜索到了第0个像素点是边界的一部分,接下来,我们就可以选择第0个像素点为起始像素点C,然后重复执行上述操作,即可找出完整的左边界。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇