Tải bản đầy đủ (.pdf) (5 trang)

XỬ lý ẢNH TRONG CÔNG NGHIỆP

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (379.6 KB, 5 trang )

Phạm Đức Long - Khoa Công nghệ tự động hoá
ĐH CNTT & Truyền thông Thái Nguyên

BÀI GIẢNG ỨNG DỤNG
XỬ LÝ ẢNH TRONG CÔNG NGHIỆP

3.1. Biến đổi Hough.
Biến đổi Hough là một kỹ thuật có thể dùng để tách ra các đặc điểm của một
hình dáng cụ thể trong một ảnh nhị phân. Khi dùng các chương trình máy tính để
nhận diện một đối tượng nào đó có hình dạng bất kỳ, phương pháp hữu hiệu hiện
nay là sử dụng biến đổi Hough. Các bài toán tìm kiếm từ những mức đơn giản như
tìm đường thẳng tới các bài toán phức tạp hơn như tìm hình tròn, hình elipse hoặc
các hình phức tạp đều có thể thực hiện bằng biến đổi Hough (với điều kiện các
hình dạng này biểu diễn toán học được).
a). Biến đổi Hough tìm đường thẳng
Không gian ảnh và không gian tham số trong HT

Rho and theta representation of a straight line. Each line has a unique
parameter set (ρ, θ).

Trên hệ toạ độ Đề các một đường thẳng có hình dạng như trên hình….
Mỗi một điểm sẽ có một toạ độ (xi, yi) trong trục toạ độ này. Nếu chúng ta dùng
tham số ρ (độ dài đường vuông góc từ gốc toạ độ đến đường thẳng) và θ (góc giữa
đường vuông góc với trục x) để biểu diễn đường thẳng thì chúng ta đã biểu diễn
đường thẳng qua thông gian tham số.
Chúng ta có quan hệ
y=−

ρ
cos(θ )
hay ρ = x*cos(θ)+y*sin(θ)


*x+
sin(θ )
sin(θ )

Các giá trị ρ và θ có giới hạn θ trong giới hạn [0.3600] hoặc [0, 2π] radian. ρ trong
giới hạn [−D,D] trong đó D là đường chéo của ảnh. Như vậy một đường có thể
biến đổi thành một điểm trong không gian tham số với các thông số ρ và θ, không
gian này cũng được gọi là không gian Hough. Kết quả của biến đổi Hough được
lưu giữ trong một ma trận gọi là accumulator. Một chiều của ma trận này là các
giá trị θ (giá trị góc) và chiều kia là các giá trị ρ (khoảng cách). and each element
has a value telling how many points/pixels are on the line with the parameters (rho,
Thái Nguyên 7-2013


Phạm Đức Long - Khoa Công nghệ tự động hoá
ĐH CNTT & Truyền thông Thái Nguyên

BÀI GIẢNG ỨNG DỤNG
XỬ LÝ ẢNH TRONG CÔNG NGHIỆP

theta). So the element with the highest value tells what line is most represented in
the input image.
Các bước biến đổi Hough đơn giản cho đường thẳng:
1. Nạp ảnh
2. Tìm các biên trong ảnh (dùng một trong các phương pháp tìm biên)
3. Với mọi pixels trong ảnh
Nếu pixel (x,y) là một điểm biên (edge)
với mọi giá trị góc θ
tính ρ và góc (θ) với mọi pixel (x,y)
tăng

vị trí (ρ, θ) trong accumulator
4. Vẽ không gian Hough.
5. Tìm giá trị lớn nhất trong accumulator
6. Vẽ đường với giá trị lớn nhất trong ảnh đầu vào
Để tìm các đường tròn sử dụng biểu thức
(x -a)^2 + (y-b)^2 = r^2
Chúng ta có 3 tham số. Nếu viết lại phương trình trên chúng ta nhận được
a = x – r*cos(θ)
b = y - r*sin(θ)
như vậy chúng ta cần một mảng cấu trúc dữ liệu accumulator 3
chiều (3D) θ lấy trong giới hạn 3600. Sau khi ảnh toàn thể đã
được xử lý, accumulator sẽ trông giống như hình bên phải.
Mảng accumulator thì được vẽ với r trên trục y và theta cắt
chéo qua trục x (across the x-axis). Các đường trong đường
cong accumulator - đường vật lý mạnh nhất trong ảnh đầu vào
tương ứng với các vùng đen nhất trên accumulator.
Ví dụ biến đổi Hough tìm đường thẳng
Ý tưởng: Tìm các đường thẳng trong một ảnh được thông số hoá ở dạng:

r = xcosθ + ysinθ , trong đó r là khoảng cách vuông góc từ gốc toạ độ đến
đường thẳng và θ là góc của r với trục x. Với mọi điểm (x,y) trên đường này r
và θ là hằng số. Với N điểm thẳng hàng trong toạ độ Đề các có phương trình r =
xcosθ + ysinθ . Biến đổi Hough sẽ chuyển N điểm này thành N đường hình sin
trong mặt phẳng (r,θ), chúng giao nhau ở điểm (r,θ).

Thái Nguyên 7-2013


Phạm Đức Long - Khoa Công nghệ tự động hoá
ĐH CNTT & Truyền thông Thái Nguyên


BÀI GIẢNG ỨNG DỤNG
XỬ LÝ ẢNH TRONG CÔNG NGHIỆP

Thuật toán:
Input: Ảnh nguyên bản ở dạng mảng 2 chiều: Image1[xMax][yMax]
Output: Ảnh mới: Image2 [xMax][yMax] chứa các đường thẳng tìm được.
Intermediate data structure: Hough [tMax][rMax] to calculate the
corresponding lines.
xMax, yMax: Kích thước ảnh.
tMax: Giới hạn lớn nhất của góc tìm kiếm; Chẳng hạn 3600.
x, y toạ độ trong không gian ảnh
Algorithm:
/* Fill in the Hough array*/
for (x=0; x< xMax; x++){
// Tìm khắp
for (y=0 ; y< yMax ; y++){ // các pixel trong ảnh
if ( Image1[x][y] > IThresh){ // Nếu độ sáng điểm ảnh > ngưỡng độ sáng
for (t=0 ; t< tMax ; t++){ // Xem trong khoảng góc tìm kiếm
r = (x-xMax/2)*cos(t) +(y-yMax/2)*sin(t) ; // Tính r thực
if (r >0) {Hough [t][r] ++;} // Nếu r> 0 cập nhật mảng Hough.
}
/* Process Hough array to find strong maxima */
for (t = 0; t < tMax / 2; t++)
// Tìm trong nửa giới hạn góc
for (r = 0; r < rMax; r++)
// Tìm trong giới hạn r
if (Hough[t][r] > Hthresh)
// Nếu số điểm Hough > ngưỡng đặt
trước

{
/* Check 5x5 neighborhood for max */
Thái Nguyên 7-2013


Phạm Đức Long - Khoa Công nghệ tự động hoá
ĐH CNTT & Truyền thông Thái Nguyên

BÀI GIẢNG ỨNG DỤNG
XỬ LÝ ẢNH TRONG CÔNG NGHIỆP

max = TRUE;
for (dt = (t - 2); dt <= (t + 2); dt++)
// Tìm trong cửa số
for (dr = (r - 2); dr <= (r + 2); dr++) // 5 x 5
if ((dr >= 0) && (dr < rMax) && (dt >= 0) && (dt < tMax) &&
(Hough[dt][dr] > Hough[t][r]))
// Nếu cả 5 điều kiện này đều
// đúng thì max = FALSE
{
max = FALSE;
break;
}
// Dựng lại ảnh
/* Process Hough array to create output image array */
if (max == TRUE)
{
makeLine(r, t);
}
}

void makeLine (r,t)
{
for (x=0 ; x/* calculate y = r/sin (t) – x*cotg(t) and fill in the Image2 array */
}

Thái Nguyên 7-2013


Phạm Đức Long - Khoa Công nghệ tự động hoá
ĐH CNTT & Truyền thông Thái Nguyên

BÀI GIẢNG ỨNG DỤNG
XỬ LÝ ẢNH TRONG CÔNG NGHIỆP

b). Biến đổi Hough tìm hình chữ nhật
Tham khảo bài
Rectangle Detection based on aWindowed Hough Transform
Cl´audio Rosito Jung and Rodrigo Schramm
UNISINOS - Universidade do Vale do Rio dos Sinos
Ciˆencias Exatas e Tecnol´ogicas
Av. UNISINOS, 950. S˜ao Leopoldo, RS, Brasil, 93022-000
{crjung,schramm}@exatas.unisinos.br.

c). Biến đổi Hough tìm đường tròn
Tham khảo bài
Detecting circular and rectangular particles based
on geometric feature detection in electron micrographs
Zeyun Yu* and Chandrajit Bajaj
The Center of Computational Visualization, Department of Computer Sciences and Institute of Computational Engineering and

Sciences,
The University of Texas at Austin, Austin, TX 78712, USA
Received 21 July 2003, and in revised form 10 October 2003

d). Biến đổi Hough tìm đường bất kỳ

Thái Nguyên 7-2013



×