2014-05-22 25 views
1

我想从乳房X线照片图像中删除胸肌。我通过将它转换为二进制来完成以下操作:从matlab中的图像中删除对象

img2=img<150; 
imclearborder(img2); %since the pectoral muscle is usually at the border of the image 

这会从图像中移除胸肌。但我现在需要将没有胸肌的结果图像转换为灰度图。任何人都可以告诉我如何做到这一点?

original image

Img with pectoral muscle img with pectoral muscle removed

第一图像示出了具有在左上角胸肌的乳房X线照片的二进制版本。第二张图像显示胸肌被移除的二值图像。我需要将此图像转换回灰度。

我试图与生成的二进制图像的原始图像乘以但我得到这个:

multiplied image

+2

如何将原始图像与您刚创建的蒙版相乘:img。* img2? –

+0

我试过这个,但它只是简单地将图像中的剩余物体变成灰色。我已经更新了这个问题。 – user1853871

+1

尝试结果=删除 - 掩码;所以你的肌肉现在是负值,所以阈值结果[Result> -1] = 1;和结果[Result <0] = 0;因此,您可以在原始图像上使用新的蒙版。 – Vuwox

回答

1

尝试

img2 = img < 150; 
img3 = imclearborder(img2); 
Result = img3 - img2; 

所以你的肌肉,现在是负值,你只需要门槛

Result(Result > -1) = 1; 
Result(Result < 0) = 0; 

或只是由做这将是足够的,因为差异将是-1和类似将是0.

Result = Result + 1; 

而且你有一个新的面具。最后,您可以在原始图像上使用它。

Final = uint8(Result).*img; 
+0

非常感谢!我已经尝试了产生胸肌的图像的第一行代码。但是,当我尝试以下两行时,我得到一个解析错误“=”; – user1853871

+0

对不起,我做了很多python,我用括号[],use()来代替。 – Vuwox

+0

谢谢!每当我再次使用这个门槛,没有任何变化。只有胸肌的图像保持不变。 – user1853871