【发布时间】:2021-12-07 19:54:16
【问题描述】:
我正在使用“基于计算机断层扫描的体积工具标准化测量上颌窦”文章的以下代码来测量 DCOM 图像中的上颌窦体积:
% Read images
clear all
close all
[filename, pathname] = uigetfile('*','Select CT exam (all slices)','MultiSelect','on');
num= length(filename);
bbbb=1;
step=input('Step of image reading: \')
for aaaa = 1:step:num
xinfo=dicominfo([pathname,char(filename(aaaa))]);
pxsp=cat(2,xinfo.PixelSpacing);
x=dicomread([pathname,char(filename(aaaa))])+cat(2,xinfo.RescaleIntercept);
k=x;
k = im2bw(k,0.49);
k = imfill(k,'holes');
cc = bwconncomp(k);
stats = regionprops(cc,'Area');
A = [stats.Area];
[~,biggest] = max(A);
k(labelmatrix(cc)~=biggest) = 0;
x(k~=1)=-2000;
masccranio(:,:,bbbb)=k;
cranio(:,:,bbbb)=x;
cranio_full(:,:,bbbb)=x;
bbbb=bbbb+1;
end
起初,我们对开头的阅读步骤输入一无所知,如果可以,请提供帮助。我们的第二个问题是当我们运行代码时,我们得到以下错误:
Error using ~=
Matrix dimensions must agree.
Error in Quant (line 32)
k(labelmatrix(cc)~=biggest) = 0;
我正在使用 Matlab 2019b,据我所知,此代码适用于 2013 年。感谢您提供任何帮助。
【问题讨论】:
-
在运行代码之前在 MATLAB 中使用
dbstop if error。 MATLAB 将在错误发生后立即停止并在调试器中打开您的代码,您可以在其中看到每个变量的值等等。在那里你可以弄清楚labelmatrix(cc)和biggest是什么,以及为什么它们的尺寸不一样。 -
@CrisLuengo 我做到了,但不幸的是 labelmatrix(cc) 和最大的不一样
-
当然,错误信息告诉你。但这是您了解为什么它们的大小以及需要进行哪些更改才能使代码正常工作的工具。
标签: matlab image-processing dcom