VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2794|回复: 10

在256色BMP找其中某一种颜色的边缘,

[复制链接]

2

主题

16

帖子

11.00

积分

新手上路

Rank: 1

积分
11.00
发表于 2021-3-9 17:00:02 | 显示全部楼层 |阅读模式
如标题所述,有好的算法吗?
回复

使用道具 举报

0

主题

5

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
发表于 2021-3-9 18:30:01 | 显示全部楼层
扫描这张图上的具有该颜色的每个象素,如果这个象素周围8个相邻象素有不同颜色,那么就标记这个象素为边缘象素。
回复

使用道具 举报

0

主题

30

帖子

22.00

积分

新手上路

Rank: 1

积分
22.00
发表于 2021-3-9 18:45:01 | 显示全部楼层
楼上正解.
不过这个容差范围,lz可以自定义.
回复

使用道具 举报

0

主题

3

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2021-3-9 19:00:01 | 显示全部楼层
扫描就可以了吧
回复

使用道具 举报

1

主题

18

帖子

14.00

积分

新手上路

Rank: 1

积分
14.00
发表于 2021-3-9 19:15:01 | 显示全部楼层
扫描整张图片上的像素,若些像素是你要的那个像素,再拿出它的边缘,
边界像素不一定有八个方向哦
回复

使用道具 举报

2

主题

16

帖子

11.00

积分

新手上路

Rank: 1

积分
11.00
 楼主| 发表于 2021-3-9 20:00:01 | 显示全部楼层
那是个初步的方法

1.我希望尽量扫描少的像素
2.我希望找出边缘像素后,使用距离原色像素最近的像素同时多点之间间距最短的像素来围成一个环

3.使用尽量快的算法
回复

使用道具 举报

2

主题

16

帖子

11.00

积分

新手上路

Rank: 1

积分
11.00
 楼主| 发表于 2021-3-9 20:15:02 | 显示全部楼层
可以不扫描图片,面从原色像素出发,使用渐开环形扫描方法吗?
回复

使用道具 举报

1

主题

7

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
发表于 2021-3-9 20:30:01 | 显示全部楼层
你可以先将图像变换为灰度图(Y=1.0000R+4.5907G+0.0601B),然后获取整幅图像(而不是物体)的边缘灰度值,接着从图像的四边(假设你的图像是个标准的矩形)向中心逼近逐行逐列判断本行本列像素点的灰度值与前一行前一列或前几行前几列的平均灰度值之差是否达到足以将次行次列判定为边缘,随后将大于这个差值的像素点标记,并且停止这个像素点到中心的逼近(但是其他没有被标记的像素点到中心的方向仍然要逼近,直到这个方向的某个像素点被标记),这样的话,不管物体有没有空洞,边缘照样提取得出来。
在以上算法思想中,从四边向中心逼近是一个技巧,差值的选定是一个关键,对已判断的像素点做标记并停止逼近是一个技巧。
回复

使用道具 举报

0

主题

3

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2021-3-9 20:45:01 | 显示全部楼层
看不懂问题是什么意思,不知道查找出图片边框有什么问题。。。
不过把图片转换成数组处理肯定比直接GetPixel快n倍
回复

使用道具 举报

0

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2021-3-9 21:00:01 | 显示全部楼层
是不是像魔棒的算法啊?种子填充算法一样的,是否可以理解为正解。如果是那,把图片转为数组,速度很快的啊。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表