function dark = darkChannel(imRGB)r=imRGB(:,:,1);g=imRGB(:,:,2);b=imRGB(:,:,3); 分别提取三色的灰度图[m n] = size(r); 提取单色图矩阵的宽度和长度a = zeros(m,n); 创建m*n的零矩阵afor i = 1: mfor j = 1: na(i,j) = min(r(i,j), g(i,j)); a(i,j)= min(a(i,j), b(i,j)); 依次比较三色分量的最小值提取为暗通道图endendd = ones(15,15); 创建15*15的单位矩阵fun = @(block_struct)min(min(block_struct.data))*d; dark = blockproc(a, [15 15], fun); 将图片分成15*15的小块并将每一块变成其中的最小值dark = dark(1:m, 1:n);我也是新手啊兄弟只能帮你到这儿了