1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
| clear all,clc; im = imread( '/Users/yons/Desktop/目标区域分别提取并统计灰度值/mei.png' ); figure; subplot(1,2,1);imshow(im);title('原始图像');
im=rgb2gray(im); subplot(1,2,2);imshow(im);title('灰度图像');
im1=medfilt2(im,[3 3]); figure;subplot(1,2,1);imshow(im1);title('3x3-中值滤波');
level=graythresh(im1); im2=im2bw(im1,level); subplot(1,2,2);imshow(im2);title('二值化'); im3 = edge(im2,'Canny'); figure,imshow(im3);
im4 = bwlabel(im3); q = max(max(im4)); [r,c] = size(im4);
A = cell(1,q+1); A{1,1} = im4;
for p = 1:q im4 = bwlabel(im3); for i = 1:r for j = 1:c if im4(i,j) ~= p im4(i,j) = 0; end end end A{1,p} = im4; end
for i = 1:q figure,imshow(A{1,i}); end
k = cell(1,q); for i = 1:q k{1,i} = ones(r,c); end for p = 1:q for i = 1:r for j = 1:c if sum(A{1,p}(i,1:j)) == 0 k{1,p}(i,1:j) = 0; end if sum(A{1,p}(i,j:c)) == 0 k{1,p}(i,j:c) = 0; end if A{1,p}(i,j) == 1 k{1,p}(i,j) = 0; end end end end
T = cell(1,q); for p = 1:q T{1,p} = zeros(r,c); end
for p = 1:q for i = 1:r T{1,p}(i,:) = double(im(i,:))*diag(k{1,p}(i,:)); end end
MEAN = cell (1,q);
for p = 1:q m = nnz(T{1,p}); MEAN{1,p} = sum(sum(T{1,p}))/m; end
|