首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >图8-没有过多分支的连接性?

图8-没有过多分支的连接性?
EN

Stack Overflow用户
提问于 2010-04-13 17:06:06
回答 3查看 189关注 0票数 0

我正在写一个低级图像处理算法,它需要对像素进行大量的8连通性检查。对于每个像素,我经常需要检查它上面、下面、边上和对角线上的像素。

在图像的边缘,有一些特殊情况,一个像素只有5到3个邻居,而不是8个邻居。最简单的方法是每次访问都检查坐标是否在正确的范围内,如果不在,则返回一些默认值。

我正在寻找一种方法来避免所有这些检查,因为它们会给算法带来很大的开销。有什么技巧可以完全避免它吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-04-13 17:10:52

对于性能关键型代码,您可能会执行类似以下操作:

代码语言:javascript
复制
process row 0
for r = 1 to M - 2
  process row r, pixel 0
  for c = 1 to N - 2
    process row r, pixel c 
  process row r, pixel N - 1
process row M - 1

大部分操作都在内部循环中,并且是无分支的。作为特殊情况,您只需处理第一行/最后一行,以及每行的第一个/最后一个像素。这会使代码变得更笨重,但这就是优化的本质。

票数 3
EN

Stack Overflow用户

发布于 2010-04-13 17:10:31

如果您的算法有合适的值,请添加一个1像素的边框,并仅检查原始像素数据。

票数 2
EN

Stack Overflow用户

发布于 2010-04-13 17:16:05

或者,为了扭转@Roger的建议,忽略每个边框的最外面的像素,如果这对你有效的话。换句话说,只处理图像的内部像素。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2628271

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档