www.gusucode.com > 基于Matlab的图像区域特征识别源码程序 > code10/main.txt

    clc; clear all; close all;
img = imread('c:\\ce.jpg');
if ndims(img) == 3
    img1 = rgb2gray(img);
else
    img1 = img;
end
img1 = medfilt2(img1, [4, 4]);
bw = im2bw(img1, graythresh(img1));
bw = imclose(bw,strel('disk', 3));
bw = bwareaopen(bw, 500);
bw = imclearborder(bw);
bw = imclose(bw,strel('disk', 5));
L = bwlabel(bw);
stats = regionprops(L,'all');
imshow(bw);
hold on;
corn1 = stats(1).Extrema;
t1 = 2 : 2 : size(corn1, 1)
plot(corn1(t1, 1), corn1(t1, 2), 'r.', 'MarkerSize', 20);
corn2 = stats(2).Extrema;
t2 = 1 : 2 : size(corn2, 1)
plot(corn2(t2, 1), corn2(t2, 2), 'r.', 'MarkerSize', 20);
figure;
imshow(img); hold on;
plot(corn1(t1, 1), corn1(t1, 2), 'r.', 'MarkerSize', 20);
plot(corn2(t2, 1), corn2(t2, 2), 'r.', 'MarkerSize', 20);
plot(corn1(t1, 1), corn1(t1, 2), 'go', 'MarkerSize', 8);
plot(corn2(t2, 1), corn2(t2, 2), 'go', 'MarkerSize', 8);