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
| clear all;
close all;
clc;
traceRect = @(M) plot(M([1 2 4 3 1],1) ,M([1 2 4 3 1],2), 'r-*');
im = imread('image.png');
[m n rgb] = size(im);
level=graythresh(im);
bw=im2bw(im,level);
L=logical(bw);
reg=regionprops(L,'Centroid');
z1 = cat(1, reg(2:2).Centroid);
z2 = cat(1, reg(9:9).Centroid);
z3 = cat(1, reg(15:15).Centroid);
z4 = cat(1, reg(21:21).Centroid);
U = [z1 ; z2 ; z3 ; z4];
X = [ 0 0 ; n 0 ; 0 m ; n m];
tform = maketform('projective',U,X);
[B,xdata,ydata] = imtransform(im, tform);
subplot(1,2,1)
imshow(im)
hold on
traceRect(U)
subplot(1,2,2)
imshow(B, 'XData', xdata, 'YData', ydata)
hold on
traceRect(X) |
Partager