示例图片如下:
我想计算大肠杆菌的长宽(图片有像素和尺寸换算比例),有什么好的思路么。
我用mahotas
只能算周长。
现在知道的一个笨方法就是用ImageJ
进行一个一个计算,但是有上千个,感觉压力好大。所以想请问一下有什么好的思路或者模块可以实现么,谢谢~
1
Hzzone 2018-01-24 14:37:39 +08:00
ImageJ 是手工算的吗?
可以试一下: 取个阈值把细菌给分割出来,然后长宽就大致取个内切和外接圆的直径... |
2
Hzzone 2018-01-24 14:38:40 +08:00 1
这样一次就能做完,但是准确多不敢保证..你可以把效果图用 matplotlib 或者 opencv 画出来看一下
|
3
northisland 2018-01-24 15:02:51 +08:00 1
ppm
|
4
shuianfendi6 2018-01-24 15:17:26 +08:00 1
不懂计算机图形学
分离红色通道,然后边缘特征提取 |
5
kangsgo OP |
6
Kilerd 2018-01-24 16:38:20 +08:00
灰度化,然后找跟目的颜色 +- xx 的像素点不行吗?
|
8
shuianfendi6 2018-01-24 16:44:38 +08:00
@kangsgo 边缘提取分割出子区域,长宽有明显分界线算子像素距离就好了,或者直接数灰度超过多少的像素面积,用长度或者宽度反求,异常的图片保存下来人工处理呗
至少这个图红色通道特征还是蛮明显的,边缘特征感觉用阈值就可以了 |
10
northisland 2018-01-24 17:55:32 +08:00 via iPhone
|
11
xuchkang171 2018-01-24 21:33:23 +08:00
试试 Halcon?
很久前用其他语言调 Halcon 做过类似的事情。 |
12
kangsgo OP |
13
ChenJinluo 2018-01-25 23:40:03 +08:00 1
老哥你是学生物的?
|
14
angchouas 2018-01-26 21:55:01 +08:00 1
如果你会用 python 的话,我推荐你一个方法,主要使用一个叫 skimage 的包。
先把图片滤波,把噪声去掉。 然后把边缘提取出来,删掉不完整的。Label 之后再 regionprops,得到边缘的坐标和质心坐标。 距离质心最长的就是半长轴,最短的就是半短轴,翻倍之后就是长和宽。 |
15
kangsgo OP |