识别多普勒超声图像血流信号

利用HSV提取血流信号

思路一: 直接提取RGB图像中R>B和R<B部分

思路一结果
遇到的困难:

  1. 由于设备原因,部分图像偏紫色,因此很难正确识别彩色区域。
  2. 即使可以正确识别彩色区域,因图像受压缩影响,无法正确判断边界。

思路二:先提取HSV图像中高H部分,再提取RGB图像中R>B和R<B部分

具体地,利用彩色区域和白色区域高H,先将这些区域取出。再判断R和B大小,若R>B则为红色,R=B则为白色,R<B为蓝色。

思路二结果
此时大部分图像均能正常识别。

遇到的困难:

这一方法还是会受思路一提到的第一个困难的影响,部分图像无法正常识别。

思路三:完全利用HSV来识别

思路三结果
思路三结果
此时,所有图像均能正确识别。具体流程:

  1. 将图片转为HSV格式
  2. 利用亮度V和饱和度S确定彩色区域
  3. 利用H确定是红色还是蓝色

MATLAB代码:

1
2
3
4
5
6
7
8
9
10
11
12
rgb = imread(...);
imshow(rgb)
hsv = rgb2hsv(rgb);
v = hsv(:,:,3) > 0.70;
s = hsv(:,:,2) > 0.15;
hred = hsv(:,:,1) < 0.5;
hblue = hsv(:,:,1) > 0.5;
ind = v & s;
rind = ind & hred;
bind = ind & hblue;
imshow(rind)
imshow(bind)