胎儿头围测量

来源:互联网 发布:用微博做淘宝客教程 编辑:程序博客网 时间:2024/06/11 21:35

给定一张B超图像,如何自动测量出胎儿头围

区域生长算法:http://www.baidu.com/s?wd=%E5%8C%BA%E5%9F%9F%E7%94%9F%E9%95%BF%E7%AE%97%E6%B3%95&rsv_spt=1&issp=1&f=8&rsv_bp=0&rsv_idx=2&ie=utf-8&tn=baiduhome_pg&bs=%E8%83%8E%E5%84%BF%20%E5%A4%B4%E9%A2%85%20%E5%8C%BA%E5%9F%9F%E7%94%9F%E9%95%BF%E7%AE%97%E6%B3%95

经过几天的研究发现区域生长算法更多的是用于图像分割。


初步计划是先将图像进行灰度化,然后求图像感兴趣区域的梯度变化值,变化值大的点即可能是胎儿头围边缘。对变化大的点进行椭圆拟合。

在这贴几个matalb函数:

在图像处理中,B=double(A),B=im2double(A),B=mat2gray(A)这三个函数有什么不同啊,在进行数据类型转换时应该用哪个呢?

matlab中的运算一般都要使用double型,即使它只是普通的整数,因此常常用第一个函数转化,第二个就是把图像数据转化为double型。

double函数只是将读入图像的uint8数据转换为double类型,一般不使用,常用的是im2double函数,将uint8图像转为double类型,范围为0-1,如果是255的图像,那么255转为1,0还是0,中间的做相应改变。

mat2gray是将最终获得的矩阵转化为灰度图像。常用的为
A = im2uint8(mat2gray(result))
这样就将result矩阵转化为uint8类型的图像。

 >> A = randint(5, 5, [0 255])A =   208    24    40    36   167   231    71   248   107     9    32   140   245   234   217   233   245   124   202   239   161   247   204   245   173>> mat2gray(A)ans =    0.8326    0.0628    0.1297    0.1130    0.6611    0.9289    0.2594    1.0000    0.4100         0    0.0962    0.5481    0.9874    0.9414    0.8703    0.9372    0.9874    0.4812    0.8075    0.9623    0.6360    0.9958    0.8159    0.9874    0.6862>> im2double(A)ans =   208    24    40    36   167   231    71   248   107     9    32   140   245   234   217   233   245   124   202   239   161   247   204   245   173
mat2gray 是把一个double类的数组转换成取值范围为[0,1]的归一化double类数组。

im2double将输入转换为double类。若输入是unit8,unit16或logical类,则输出转换成范围为[0,1]的double类;
                                若输入已经是double,则输出将返回一个与输入相同的数组。




0 0
原创粉丝点击