I = imread('111.jpg');%讀取處理好的圖片,必須是嚴格坐標軸線為邊界的圖片 I=rgb2gray(I); %灰度變化 I(I>200)=255; %二值化 I(I<=200)=0; %二值化 imshow(I) %顯示圖片 [y,x] = find(I==0); %找出曲線的像素位置 y = max(y) -y; %將屏幕坐標轉換為有手系迪卡坐標 y = fliplr(y); %左右翻轉數據 plot(x,y,'r.','markersize',2)%顯示轉換后的圖像 [Xx,Yy]= ginput(2); % 讀取真是坐標左上角和右下角的兩點 min_x = min(Xx); max_x = max(Xx); min_y= min(Yy); max_y = max(Yy); % x1 = (x-Xx(1))*(max_x-min_x)/(Xx(2)- Xx(1))+min_x; % y1 = (y-Yy(1))*(min_y-max_y)/(Yy(2)- Yy(1))+max_y; %% 坐標變化,如果坐標原點不為0,則需在該軸加上省去的坐標軸數 xo = -15;%原始圖像起點坐標x yo = -30;%原始圖像起點坐標x xl = 30; %原始圖像x軸長 yl=70; %原始圖像y軸長 x1 = (x - min(Xx))*xl/(max(Xx)-min(Xx))+xo ;%數據點x值 y1 = (y - min(Yy))*yl/(max(Yy)-min(Yy))+yo;%數據點y值 plot(x1,y1,'r.','markersize',2) axis([-15,15,-30,40])
下面第一幅圖是原圖像,第二幅是復原圖像