主题:求c高手
YJL66
[专家分:0] 发布于 2011-10-27 11:16:00
帮忙用c语言写个软件。。能够算出一张背景为黑得图片中,图片里有若干白颜色的圆,算出各个圆的圆心。。。
一直想,,,没想出来。。。
回复列表 (共2个回复)
沙发
winmain2008 [专家分:280] 发布于 2011-10-27 12:22:00
不管你说的图片是不是8位图像和位图,你首先得把图片转换成8位位图(即一个像素占一个字节,方便计算)。然后把位图像素读取到一个二维数组中(可以用一维数组模拟二维数组),这个二维数组的值只有0和1两种,然后你用广度搜索算法,把每一个值为0(白色)的连通域搜索出来并标记,比如第一个白色的连通域为1,第二个连通域标记为2......然后你一次处理每个白色连通域,把它们的坐标(i,j)取出来,
其实把最大i,减去最小i就是直径(以像素为单位),不过直接这样算误差肯定很多,具体怎么算看你自己。
做这个题目你需要的知识,我也很久没处理过位图了
1.熟悉位图结构,比如位图的文件头,信息头,颜色表(24位真彩才有)等
2.熟悉位图连通域搜索算法,不要用函数递归,处理图像用递归图像尺寸一大函数栈必暴。用数据结构栈模拟递归,即可。
板凳
bruceteen [专家分:42660] 发布于 2011-10-28 08:28:00
OpenCV 中有 cvHoughCircles 函数
我来回复