Image matlab求一系列图像的像素中值

Image matlab求一系列图像的像素中值,image,matlab,image-processing,pixel,Image,Matlab,Image Processing,Pixel,我试图在matlab中找到一系列dicom图像的像素中值 我的图像数组的大小为(256、256、20)-其中20个是20个图像 我是matlab新手,我认为我做了一些可怕的错误,因为我的代码已经运行了一个多小时。这是: med_img = [] for k = 1:size(Im_Orig,1) for i = 1:size(Im_Orig,2) med_img(k,i) = median(Im_Orig(k,i,:)) end end 我知道尽可能避免嵌套f

我试图在matlab中找到一系列dicom图像的像素中值

我的图像数组的大小为(256、256、20)-其中20个是20个图像

我是matlab新手,我认为我做了一些可怕的错误,因为我的代码已经运行了一个多小时。这是:

med_img = []
for k = 1:size(Im_Orig,1)
    for i = 1:size(Im_Orig,2)
        med_img(k,i) = median(Im_Orig(k,i,:))
    end
end

我知道尽可能避免嵌套for循环,但我无法找到更好的解决方案,也无法在任何在线位置找到好的函数

任何帮助都会很棒

在一组图像中查找中值图像 这应该取第三维的中值,该中值对应于每个对应像素之间的中值

方法1:沿第三维度取中值: 方法2:使用for循环并取每个向下向量/列的中值:
使用MATLAB R2019b运行

只是为了澄清,您试图找到20幅图像的中值,在这种情况下是正确的吗?我试图找到每个像素的中值。然后我会找到最接近这个像素中值“图像”的图像。它几乎是在寻找中间图像。通过在行
med_img(k,i)=中间(Im_Orig(k,i,:))中添加分号来抑制输出应该可以做到这一点。另外,预先分配阵列的大小也可能有助于提高速度。非常感谢!两种方法都非常有效,运行速度非常快。
%Random data simulating image%
Image = round(255.*rand(256,256,20));

Dimension = 3;
Median_Image = median(Image,Dimension);
%Random data simulating image%
Image = round(255.*rand(256,256,20));

%Grabbing dimensions of multi-image array%
[Image_Height,Image_Width,Number_Of_Images] = size(Image);


Median_Image = zeros(Image_Height,Image_Width);

for Row = 1: Image_Height
   for Column = 1: Image_Width 
    
Median_Image(Row,Column) = median(Image(Row,Column,:),'all');
       
    
   end
end