matlab 實現車牌的傾斜校正

2021-06-26 08:48:26 字數 1985 閱讀 5648

clear,clc,close all;

%[fn,pn,fi]=uigetfile('*.jpg;*.bmp','選擇');

i=imread('e:\picture\12.jpg');figure,imshow(i);title('原始影象');

bw=rgb2gray(i);

bw=im2bw(i,graythresh(bw));

bw=double(bw);

bw=edge(bw,'canny');

imshow(bw);title('canny 邊界影象');

[h,t,r]=hough(bw);

figure,imshow(h,,'xdata',t,'ydata',r,'initialmagnification','fit');

xlabel('\theta'),ylabel('\rho');

axis on, axis normal,hold on;

p=houghpeaks(h,4,'threshold',ceil(0.3*max(h(:))));

x=t(p(:,2)); y = r(p(:,1));

plot(x,y,'s','color','white');

lines=houghlines(bw,t,r,p,'fillgap',50,'minlength',7);

figure,imshow(bw),title('直線標識影象');

max_len = 0;

hold on;

for k=1:length(lines)

xy=[lines(k).point1;lines(k).point2];

% 標出線段

plot(xy(:,1),xy(:,2),'linewidth',2,'color','green');

% 標出線段的起始和終端點

plot(xy(1,1),xy(1,2),'x','linewidth',2,'color','yellow');

plot(xy(2,1),xy(2,2),'x','linewidth',2,'color','red');

len=norm(lines(k).point1-lines(k).point2);

len(k)=len;

if (len>max_len)

max_len=len;

xy_long=xy;

endend

% % 強調最長的部分

plot(xy_long(:,1),xy_long(:,2),'linewidth',2,'color','blue');

% [l1 index1]=max(len(:));

% % % 最長線段的起始和終止點

% x1=[lines(index1).point1(1) lines(index1).point2(1)];

% y1=[lines(index1).point1(2) lines(index1).point2(2)];

% % % % 求得線段的斜率

% k1=-(lines(index1).point1(2)-lines(index1).point2(2))/...

% (lines(index1).point1(1)-lines(index1).point2(1))

% angle=atan(k1)*180/pi

% a = imrotate(i,-angle,'bilinear');% imrate 是逆時針的所以取乙個負號

% figure,imshow(a);

k1=-((xy_long(2,2)-xy_long(1,2))/(xy_long(2,1)-xy_long(1,1)))

%k1=-((xy_long(1,2)-xy_long(2,2))/(xy_long(1,1)-xy_long(2,1)))

angle=atan(k1)*180/pi

a = imrotate(i,-angle,'bilinear');% imrate 是逆時針的所以取乙個負號

figure,imshow(a);

車牌校正中水平方向的邊緣提取

1.下面是乙個水平角度除錯比較好的設定 一下是主要幾個引數 cvsobel img,imgs,0,1,3 cverode imgth,imgth,kernelvertical,1 經過試驗驗證,其實用scharr濾波器比sobel濾波器更好,scharr濾波器只是把最後乙個svsobel引數改為 1...

MATLAB實現車牌識別 藍色底 黃色底

matlab實現簡單的車牌識別 很多數學建模或者一些畢業 都會涉及到車牌識別,這裡採用matlab語言進行編寫,較為詳盡的介紹了車牌識別的兩種常用方法 方法 一 簡單定位法 這是自己取的名字,這是對於車牌所處環境顏色不複雜時採用的方法 進行灰度處理 進行影象邊緣檢測和腐蝕,膨脹和平滑影象輪廓,最後去...

gamma校正 伽馬校正的GLSL實現

本文是opengl 4.0 shading language cookbook的學習筆記。在本文我們將介紹使用伽馬校正來提高渲染的影象質量。許多關於opengl和3d圖形學的書會把伽馬校正忽略掉。光照和著色計算的結果沒有修改直接被輸出到螢幕上。這樣產生的影象可能並不是我們期望的。實際上,計算機顯示器...