***200分,SOS!!!(100分)

  • 主题发起人 主题发起人 BinDong
  • 开始时间 开始时间
B

BinDong

Unregistered / Unconfirmed
GUEST, unregistred user!
小弟如今在做一个医院的MIS,当中要用到图像的拾取。
比如,在显微镜下有好多细胞,形成的显微图像输入计算机。我怎样知道图
像有多少个细胞?细胞的轮廓是不确定的。也就是说,我要把细胞从背景中分别出来。
这个功能有些像PHOTOSHOP中的“魔术棒”,但是不需要用鼠标点相应的颜色区域。
如果实现的算法太复杂,有没有现成的控件或函数可提供?万分感激!


 
显微镜下细胞如果是染色的, 那么可以根据一个颜色域值区分出细胞的边框(把全彩图转换成双色图).
另外emboss算法也能区分出图案的边框(不太准确, 存在遗漏).
我觉得复杂的不是分离细胞和背景. 而是计数. 是否可以在区分出边框之后用边框色进行充填然后
判断附近的颜色值是否相同来进行计数?
顺便说一句: 我也从事医院系统的开发. 巧得很, 也正好在做和医疗仪器的接口.
有兴趣我们共同探讨探讨.
 
这个问题你最好找本图象处理的书籍来看,要知道有多少个细胞,首先要
确定图象的轮廓,细胞轮廓的确定是:边缘检测。 把细胞分离出来,
图象分割。自己编写这些程序也不难的。
 
现成的空间和函数显然是没有的
我的工作是有关染色体识别的,类似的问题有大量的文献和书籍可供
参考。简单的说:
1、用自适应的局域阈值法除去图象背景色
2、图象分割
3、目标判别(是否是细胞或者是杂质等干扰物)

先找一本《数字图象处理》学习学习吧
 
我是学图象处理的,对你的问题很感兴趣。
图象处理的书籍,我认为比较好的有:
Digital Image Processing清华大学影印出版的。
《图象处理》科学出版社,徐建华(复旦大学)

 
这个问题专业了,还是到图书馆查查文献吧。相信光识别细胞图像的文章就会有很多。
 
这个问题不太好解决,有成果可以通知我一声吗?
 
真是高兴,看到有同志与我为同样的事发愁,我抱着一本
《数字图像处理》看了半个月,仍然未能下手,解决办法也基
本和上面几位热心人说的一样,先找到灰度域值,然后根据此
域值找到物体轮廓。也有边缘跟踪法,区域扩张法,但书上泛
泛而谈,具体实现似乎不那么容易,对灰度域值法思考的多一
些,书上谈到将图像划分为100*100的象素块,对每一块找出
其灰度域值(此值可将灰度直方图的背景峰值和物体灰度峰值
的中点得到),然后根据此灰度域值算出物体的平均灰度值,
第二步用平均灰度值与外部灰度峰值平均算出最终的灰度域值
根据此灰度域值可以把物体分离出来,但是我对这种方法仍然
有很多实现不下去的地方,请各位热心的同志帮帮忙,请将较
详细的算法写下来,不胜感激,当然用别的方法实现我也欢迎。
E-mail: ddouble@990.net
 
我没有见过细胞显微图像,如果单纯从图像处理的理论出发,我估计目前全世界也难
以找到解决办法。(我这么说,感到很对不起我的老师以及同行)
你可以根据图像的特点设计经验算法来实现(计算机毕竟还处于弱智的进化期)。
能否给我一幅图像看看。
BTW, 我的专业是计算机视觉。对这一问题非常感兴趣。如有成果,别忘了通知哦。
 
这是一个没有解决的问题。我正在做图象的分割问题。
我们做的还要一般一些,要求对任意的图象分割出语意
对象。现在国际上认为没有先验知识的情况下,是不可
能做到自动的。

你的应用环境有很强的先验知识应该可以做到比较满意
的自动化。但是,具体的算法是要自己研究的,不可能
在某本书上或某篇文章里找到非常合适的算法的。如果
别人有好大算法,早就做成产品赚钱了,还写成书干嘛? :)
不仅中国人如此,外国人也是这样的。看的文章多了,
自然就明白个中道理。我们的算法都是自己做的。

对一个专业人士,你的这个问题并不是很难,但要做到
与人眼可比较的地步,是几乎不可能的。如果你能够静
心地坐下来研究一个月,应该可以做出一个可接受的算
法。想偷懒是不行的,要求太高也实现不了。
 
希望能够得到一个好的答案!
请继续!
 
就事论事, 单纯细胞计数并没有那么复杂. 计数允许有误差(而且是以千或者万为单位的).
所以分割图象不是那么复杂.
看过显微镜下的细胞图吗? 细胞的边界一般都比较明显, 而且相隔较远(计数的一般是血球数).
我觉得难点在于正确区分重叠的细胞上.
 
此问题需编程解决,要用到区域填充的有关种子算法,不难,我编过此软件,

请您参考有关论文,我不能在任何图像处理的书中找到现成的算法.

如果我的文章发表了,会告诉你,如果你有用的话,不过近期没时间写.
 
我觉得真正实现这个问题太复杂了。
如果你不是要很精确得数据的话,可以用个变通得法子,
总面积/单个细胞的面积。
计算总面积相对简单点,只要背景与细胞颜色不同就行了。
细胞面积嘛,事先算个平均值。
投机取巧了
 
我现在正要做一个类似的东西(也是医院用的)
看了几天书,琢磨着这样做:(供参考)
我得到的图片背景与前景分界较明显,所以用简单的
灰度阈值就可以较好的分割,程序如下:

source--待分割的图象
t1------暂用的分割结果图象,-1:背景;0:前景(两幅都是8位灰度)
y-------分割用阈值


for i:=0 to source.height-1 do
begin
l:=source.scanline;
lt:=t1.scanline;
for j:=0 to source.width-1 do
if l[j] > Y then lt[j]:=-1
else lt[j]:=0;
end;


对于计数,可用以下方法:

逐点扫描t1,遇到第一个0点时(级下x,y),记数值加一(初始为0),并将此点
值改为计数值(现在是1),再扫描与此点相连的点(4点或8点),如有值为
0的也标记为计数值(现在是1),再扫描与这些点相连的点...,直到再无
0点为止,从(x,y)继续扫描,直到扫完全图为止.

此时计数值即为区域数(既细胞数,如果有重叠则记一个,可根据形态及面积
再区分)

这方法才想出来的,可行性和时间耗费还未验证,希望大家继续讨论.

BTW:我在MATLAB5.2中见到一个边界分割的例子,不过一运行就死机,谁知道
咋回事?
 
记数简单,其实就是一个种子填充的问题
在计算机图形学的书中通常有详细的描述,我还见到有的书提供了c语言的source
一般是用扫描线种子填充
 
据我所知,北邮有一个图像处理高手叫陈赝,它的email地址ie6263.net
你可以问问他.
 
这个问题已经很长时间没有人参加讨论,为保持版面
整洁,节约网友时间,请提问者选择继续讨论或结束
问题。关于本版管理细则,请参见<a href="http://www.gislab.ecnu.edu.cn/delphibbs/DispQ.asp?LID=111927">这个</a>问题。如两天
内提问者没有响应,我将采取强制措施。请提问者尽
可能自己处理自己的问题。这是您的权利,也是您的
义务。

如有管理建议,请到<a href="http://www.gislab.ecnu.edu.cn/delphibbs/DispQ.asp?LID=111927">这里</a>提出。谢谢!
 
多人接受答案了。
 

Similar threads

回复
0
查看
863
不得闲
D
回复
0
查看
744
DelphiTeacher的专栏
D
D
回复
0
查看
718
DelphiTeacher的专栏
D
D
回复
0
查看
672
DelphiTeacher的专栏
D
D
回复
0
查看
824
DelphiTeacher的专栏
D
后退
顶部