各位大哥,帮忙啊~~~~

苍红之刀 2003-10-09 09:45:41
一张位图,背景是黑色,在左上角有一个白色的圆环,在中间靠右的地方有一个白色三角,问如何把三角形给“抠”出来。
...全文
29 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zzwu 2003-10-12
  • 打赏
  • 举报
回复
假设你的图像如下(其中'.'代表黑色,'*'代表白色):
. . . . . . . . . . . .
. * * . . . . . . . . .
* . . * . . . . . . . .
* . . * . . . . . . . .
. * * . . . . . . . . .
. . . . . . . . . * . .
. . . . . . . . * * * . <--
. . . . . . . * * * * *
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .

针对这样的图像而言,你可以从中间某一行(如上面箭头所示)开始,从右向左扫描,这样很快就能扫到白色的三角形,然后用轮廓跟踪法,就可以把此三角形“抠”出来了。
wolfslash 2003-10-11
  • 打赏
  • 举报
回复
求出两个白色的东西所在的rgn,根据两个rgn中心位置的相对位置即可,靠右的肯定是你想要的东西。
Freshyy 2003-10-11
  • 打赏
  • 举报
回复
如果仅仅是针对这张图(或者这类图)的话,那还是很简单的!

有两种方法:
(1)边界追踪算法,因为目标很少,所以效率很高。,
追踪得到其边界Freeman码。根据Freeman码首先很容易区分出是圆还是三角形(圆和三角形的Freeman码都很有规律,而且区别很明显),由此可以得到该三角形区域的所有坐标,三角形的面积,周长,形心坐标等一系列几何参数,你可以对它进行任何操作。
(2)数学形态学方法
对目标进行重复腐蚀,直到极限腐蚀为止,其中记录了目标的被腐蚀点,从而反推即可!
这种方法的思想其实就是数学形态学中“流域分割的思想”!
这种方法的缺点就是比较耗内存,不太适合多目标情况!
HUNTON 2003-10-11
  • 打赏
  • 举报
回复
如果三角形比较大的话,用Hough变换把三角形的三边所在的直线找出来,然后就得到三角形了
Skt32 2003-10-11
  • 打赏
  • 举报
回复
rgn
hahu 2003-10-09
  • 打赏
  • 举报
回复
如 xiaohu9711(小胡) 所说
也就是最原始的填充图片的翻版

对该图来说
可以从位图的右半部分开始操作
LONG lLeft,lRight,lTop,lBottom;
lLeft=lRight=lWidth/2;lTop=lBottom=0;
for(LONG i=0;i<lHeight;i++)
for(LONG j=lWidth/2;j<lWidth;j++)
{
if(lpSrc是白色&&i<lTop)lTop=i;
if(lpSrc是白色&&i>lBottom)lBottom=i;
if(lpSrc是白色&&j<lLeft)lLeft=j;
if(lpSrc是白色&&j>lRight)lRight=j;
}//上面获得三角形所在的区域
然后可用memset了
xiaohu9711 2003-10-09
  • 打赏
  • 举报
回复
是针对这幅图像的算法吗?如果是:那你就对白色的操作,然后对大概的位置做不就是的吗

4,445

社区成员

发帖
与我相关
我的任务
社区描述
图形图像/机器视觉
社区管理员
  • 机器视觉
  • 迪菲赫尔曼
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧