我有一个原始的胸部X射线图像(orig.jpg).我用ITK手工分割了这个二进制掩码图像(bmask.jpg):

为了从背景中提取肺区域,我运行了以下MATLAB代码:
clear all;
clc;
IR=imread('orig.jpg');
im=imread('bmask.jpg');
ROI = IR;
ROI(im == 1) = 0;
ROI(im ~= 1) = 1;
SEG = IR.*ROI;
figure;
imshow(SEG);
imwrite(SEG,'SEG.jpg');结果图像:

我发现,由于肺边界附近的肺区域内的一些二元掩膜像素具有"1“值,因此图像在肺区域内的肺边界附近有一些黑点。另外,在所得到的图像中,肺边界有一个锯齿状的图案,而不是像二元掩模那样平滑的图案。我怎样才能解决这些问题?有人能帮帮我吗?
谢谢。
发布于 2014-11-12 00:40:36
我猜你的问题是因为你的jpg面具不是真正的二值图像。使用jpg存储二进制图像不是很好的想法,因为由于jpegs的压缩性质,您的掩膜将稍微偏离二值图像,特别是在边缘。
要从jpeg掩码中获取真正的二进制图像,可以尝试以下操作:
Ibw = im2bw(rgb2gray(imread('mask.jpg')));如果这没有帮助,当您生成您的掩码,不要使用jpeg。相反,在灰度中使用未压缩(或无损失压缩) tiff,或者将其作为二进制matlab矩阵存储在文件中。
希望这能有所帮助。
发布于 2021-06-08 19:00:43
clear all;
clc;
IR=imread('orig.jpg');
im=imread('bmask.jpg'); %binary image
ROI = IR;
ROI(im == 0) = 0;
figure;
imshow(ROI);https://stackoverflow.com/questions/26876290
复制相似问题