PIC Vietnam

Go Back   PIC Vietnam > Robotics > Xử lý ảnh

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Tìm Kiếm Bài Trong Ngày Ðánh Dấu Ðã Ðọc Vi điều khiển

Xử lý ảnh Các thuật toán xử lý ảnh dùng trong robot

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 15-04-2006, 01:37 PM   #1
falleaf
PIC Bang chủ
 
falleaf's Avatar
 
Tham gia ngày: May 2005
Bài gửi: 2,631
:
Send a message via Yahoo to falleaf
Căn bản về xử lý ảnh?

Những câu hỏi mà F đặt ra mời các "cao thủ" hướng dẫn dùm như sau:

1) Xử lý ảnh là gì?
Câu hỏi này tưởng chừng như một câu hỏi ngờ nghệch, nhưng nó lại rất quan trọng, một khi chúng ta không hiểu xử lý ảnh là gì, chúng ta rất mơ hồ và có thể nhầm lẫn ngành nghiên cứu của mình với các ngành nghiên cứu khác, và bản thân chúng ta cũng không có hướng đi rõ ràng.

2) Những hướng phát triển của xử lý ảnh hiện nay trên thế giới?
Điều này hơi mang tính academics, nhưng mà , vấn đề rất rõ ràng rằng, xử lý ảnh nhằm giải quyết việc gì? Và những vấn đề trong việc xử lý ảnh là gì? Nó được hình thành như thế nào? Người ta đã giải quyết nó như thế nào và đến mức độ như thế nào?

Đây là hai câu hỏi rất cơ bản nhưng lại rất quan trọng để phát triển luồng về xử lý ảnh, mong các bạn hướng dẫn một cách chi tiết, và có kèm nhiều hình ảnh minh hoạ để người đọc dễ nhận biết.

Chúc vui.
falleaf vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 17-04-2006, 11:30 AM   #2
falleaf
PIC Bang chủ
 
falleaf's Avatar
 
Tham gia ngày: May 2005
Bài gửi: 2,631
:
Send a message via Yahoo to falleaf
http://dientuvietnam.net/forums/forumdisplay.php?f=60

Trao đổi về xử lý ảnh, các bạn tham khảo tại dientuvietnam

Chúc vui
falleaf vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 20-09-2006, 09:11 PM   #3
svn
Đệ tử 1 túi
 
Tham gia ngày: Sep 2006
Bài gửi: 24
:
Quái, cái link anh đưa cũng ko có gì cả.
Em cũng mới thử tìm hiểu về xử lý ảnh, gặp ngay một bài toán có thể thực tiễn (chắc vậy). Chúng ta có một bản đồ vuông giới hạn, trên đó có một số chướng ngại, và một con robot đang ở đâu đó trên bản đò. Nếu mình để một camera (hay wc cho nó rẻ) ở phía trên (nhìn xuống bản đồ), và màu của robot tương phản với các màu còn lại, mình có thể xử lý để xác định vị trí của robot. Có người nào từng tìm hiểu có thể gợi ý cho em một số giải thuật ko ạ?
svn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 20-09-2006, 09:22 PM   #4
svn
Đệ tử 1 túi
 
Tham gia ngày: Sep 2006
Bài gửi: 24
:
Xin lỗi mí anh, em chưa đọc hết box này nên pót bài ở trên, nhà anh mod hay admin xóa hộ em.
svn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 12-04-2007, 06:20 PM   #5
thanh_nam1977
Đệ tử 2 túi
 
thanh_nam1977's Avatar
 
Tham gia ngày: Apr 2007
Nơi Cư Ngụ: Ho Chi Minh
Bài gửi: 27
:
Send a message via Yahoo to thanh_nam1977
Xử lý ảnh có 2 ứng dụng cơ bản :Nâng cao chất lượng hình ảnh đối với mắt người (Thông qua các kỹ thuật lọc nhiễu-Nooise filter , làm nổi đường biên -Image enhancement, khôi phục ảnh -Image retoration...) và xử lý số liệu cho máy tự động.

Những ứng dụng tiêu biểu của việc xử lý số liệu cho máy tự động là Nhận dạng mặt người -Face recognition, nhận dạng vân tay, hiển thị hình ảnh trong các máy X quang, chụp cắt lớp trong y tế, nén ảnh tĩnh và video động để cùng một bằng thông truyền được khối lượng thông tin lớn và do vậy cho phép đạt được độ phân giải cao hơn.


Về lịch sử của xử lý ảnh, bắt nguồn từ việc nâng cao chất lượng hình ảnh báo truyền qua giữa đường cáp London và newYork vào năm 1920. Lúc ấy chỉ đơn giản là xử lý phân bố các mức sáng (Mức xám và độ phân giải của ảnh)


Việc nâng cao chất lượng ảnh bằng các phương pháp xử lý để truyền ảnh số được nghiên cứu liên tục 35 năm sau đó. Do kỹ thuật máy tính ngày càng phát triển, nên xử lý ảnh cũng phát triển rất nhanh. Năm 1964, các bức ảnh chụp Mặt Trăng do vệ tinh Mỹ Ranger 7 truyền về, được xử lý bằng máy tính đề sửa méo (Do các Camera đặt ở các góc độ khác nhau).


Từ 1964 đến nay, phạm vi xử lý hình ảnh và video động ngày càng mở rộng và lớn mạnh.Có thể kể ra một số ứng dụng điển hình:
Trong y học, các thuật toán máy tính nâng cao độ tương phản, mã hóa các mức sáng thành các màu để nội suy ảnh x quang

Các nhà nghiên cứu thiên văn học cũng sử dụng kỹ thuật trên để nghiên cứu các mẫu vật chất chụp từ các ảnh vệ tinh.

Trong thiên văn học, dự báo thời tiết áp dụng xử lý ảnh để khắc phục hình ảnh bị nhiễu hoặc bị mất do bóng(Artifact)


Xử lý ảnh dựa trên các kỹ thuật sau :


1.Biến đổi ảnh :Gồm phương pháp biến đổi Fourier,DFT,FFT, biến đổi Hotelling…

2.Làm nổi đường biên ảnh :Gồm các phương pháp lọc trong miền không gian và miền tần số…

3.Khôi phục ảnh

4.Nén ảnh

5.Phân đoạn ảnh

6.Biểu diễn và vẽ

7.Nhận dạng và nội suy

8.Xử lý ảnh động

Các kỹ thuật cơ bản của xử lý ảnh như lọc nhiễu bằng các bộ lọc Min -Mã, bộ lọc trung vị...Hay làm nổi đường biên ảnh bằng phương pháp Gradient sử dụng mặt nạ Sobel, Prewithz..Hay phương pháp tổng hợp Canny vẫn là các cơ sở cơ bản.


Hướng phát triển mới của xử lý ảnh là sử dụng mạng Newron, Fuzzy... vào các thuật toán xử lý ảnh giúp cho việc nhận dạng, xử lý ảnh trở nên dễ dàng và hiệu quả hơn.


Một hướng phát triển nữa là phát triển các chíp FPGA chạy các ứng dụng xử lý ảnh một cách độc lập (Nhúng các thuật toán xử lý ảnh vào các chip)


Cùng với sự phát triển của máy tính, việc ứng dụng phần mềm Matlab với Image Processing Toolbox vào việc học xử lý ảnh, giúp người học nhanh chóng nắm vững các kỹ thuật căn bản, viết và chạy các thuật toán, các ứng dụng xử lý ảnh một cách dễ dàng. Tuy vậy, theo quan điểm cá nhân tôi, việc học và viết các thuật toán xử lý ảnh bằng ngôn ngữ như C chẳng hạn, sẽ giúp người học nắm vững và triệt để hơn bản chất các thuật toán, tuy nhiên so với Matlab thì người học sẽ vất vả hơn nhiều.

Xử lý ảnh được nghiên cứu trong môn học thị giác máy tính (Computer Vision) và Digital Image Processing.

Ở trong nước, môn xử lý ảnh được giảng dạy ở ngành công nghệ thông tin và ngành điện tử, tự động hóa. Các tài liệu về xử lý ảnh bằng tếng Việt, còn rất khiêm tốn, cuốn Xử lý ảnh và Video số của TS Nguyễn Kim Sách là cuốn nên tham khảo. Về sách tiếng anh thì có rất nhiều.Trong số đó có cuốn Digital Image Processing úing Matlab của Rafael C. Gonzalez viết rất hay.

Để có học liệu khi nghiên cứu môn này, khi muốn tìm và download sách trong google bạn gõ các keyword sau, nó sẽ cho ta link dơnload sách :

-"mihd.net","digial image" sẽ dẫn đến các linkdownload sách của host mihd.net, đây là hót miễn phí và rất hào phóng không cần account

- Với những bạn có tài khoản Rapidshare.com hay de thì có 2 cách, một là vào trang web www.rapidshare.org đăng ký member, rồi log in vào sau đó tìm các link với từ khóa :"image processing" sau đó kiểm tra và down về, còn không thì vào google gõ vào :"rapidshare","image processing"

-Ngoài ra bạn có thể kiếm sách từ rất nhiều diễn đàn với từ khóa "forum","image processing"

-Nguồn học liệu trên mạng rất phong phú, dễ dàng kiếm ra với các key :"course", "digital image processng"


Để nắm vững vấn đề xử lý ảnh một cách cơ bản, mình đề nghị các membet viết và post lên thuật toán, chương trình (Viết bằng Matlab hay C) sau:

1.Cơ sở lưu ảnh đen trắng và ảnh màu

2.Lọc nhiễu

3.Tách biên ảnh đen trắng và ảnh màu

4.Phân đoạn ảnh

5.Biểu diễn và tô màu

6.Khôi phục ảnh

7.Nén ảnh tĩnh jpeg

8.Nén ảnh động

9.Nhận dạng chữ viết

10.Nhận dạng mặt người


Hy vọng là các bạn tham gia nhiệt tình để: Thứ nhất là giúp bản thân mình nắm vửng vấn đề hơn, kiểm chứng hiểu biết của bản thân; Thứ hai là giúp những người mới học có nguồn học liệu bổ ích để việc học dễ dàng hơn.

thay đổi nội dung bởi: thanh_nam1977, 12-04-2007 lúc 06:33 PM.
thanh_nam1977 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 06-07-2007, 09:50 AM   #6
photoman
Nhập môn đệ tử
 
Tham gia ngày: Jul 2005
Bài gửi: 9
:
em muốn tìm hiểu về nhận dạng vật thể trong một ảnh , nhưng còn thắc mắc 1 số điểm cơ bản sau :
+/ Nhận dạng ảnh là gì ?
+/ Các bước cơ bản để thực hiện nhận dạng ?
+/ làm thế nào để tìm trên ảnh (cần nhận dạng) những đặc điểm nhận dạng
Em muốn tìm hiểu lý thuyêt cơ bản trước để xác định phương hướng .Còn các thuật toán cũng chỉ là các công cụ .Mong các bác giúp em với .Thanks
photoman vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 20-02-2008, 08:52 AM   #7
dangtuyen
Nhập môn đệ tử
 
Tham gia ngày: Feb 2008
Bài gửi: 1
:
nhạn dàng chữ viết offline

chào mọi người.
các bạn có tài liệu nào nói về nhận dạng chữ viết offline gừi cho mình với.
thanks nhiều nhé.

dangtuyennguyen@gmail.com
dangtuyen vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 27-02-2008, 11:42 PM   #8
bakabond
Nhập môn đệ tử
 
Tham gia ngày: Feb 2008
Bài gửi: 5
:
và một phần nữa là xử lý ảnh không phải là xử lý đồ họa .
bakabond vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 27-02-2008, 11:44 PM   #9
bakabond
Nhập môn đệ tử
 
Tham gia ngày: Feb 2008
Bài gửi: 5
:
@dangtuyen : bạn có thể dùng thuật toán laplace để đạo hàm màu các hình, sau đó so sánh đường biên đó với mẫu chữ chuẩn . Mình cũng đang làm phần này để nhận dạng Biển số xe . Vấn đề khử nhiễu và điều chỉnh Threshold mình chưa nắm rõ lắm . Ai đó chỉ dùm với .
bakabond vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 06-05-2008, 11:08 PM   #10
epcitkt
Nhập môn đệ tử
 
Tham gia ngày: Nov 2007
Bài gửi: 2
:
Thuật toán raster to vetor
Ban nào biết về vấn đề này giúp mình với
Thuật toán và lý thuyết
epcitkt vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 27-05-2008, 11:23 PM   #11
thai24_06_1986
Nhập môn đệ tử
 
Tham gia ngày: May 2008
Bài gửi: 1
:
mình có 1 bài toán về xử lí ảnh mong các bạn chỉ với:có mấy chủ đề dưới , bạn nào bít về chủ đê nào chỉ giúp mình nha:
1.các kĩ thuật xử lí vùng quan tâmhép cuộn, cắt xén, phóng to, tịnh tiến, quay
2.đại số ảnh :các thao tác số học:cộng trừ ảnh, các thao tác logic:AND,OR,và NOT
3.các bộ lọc ko gian
-lọc trung bình
-lọc trung vị
-lọc nâng cao
4.Phân ngưỡng "
-ảnh cấp xám tự động sử dụng Histogram
-Phân ngưỡng ảnh tách cạnh sử dụng giá trị trung bình
5.các bộ lọc hình thái học trên ảnh nhị phân

- giới thiệu
-Dilation , Erosion
-OPENING, CLOSING
6.nén ảnh sử dụng các phương pháp hiệu chỉnh Histogram
-Định nghĩa
- Giãn Histogram
-co Histogram
-Trượt Histogram
- cân bằng Histogram: giới thiệu , các bước thực hiện, ví dụ, nhận xét kết quả
CÁC phần này được áp dụng lên ảnh cụ thể : thưch hiện trên ngôn ngữ MAtLap!!
các bạn hcir giúp mình với nha
thanks nhiều!!
thai24_06_1986 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 18-08-2008, 05:50 PM   #12
tganhkhoa
Nhập môn đệ tử
 
Tham gia ngày: Jul 2008
Bài gửi: 4
:
Send a message via Yahoo to tganhkhoa
có thể nào post sơ đồ lên cho anh em thửong thức được kg. thanks
tganhkhoa vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 17-01-2009, 09:47 PM   #13
mrlong
Nhập môn đệ tử
 
Tham gia ngày: Aug 2008
Bài gửi: 1
:
Chào các bạn. Tôi là SV TDH BKHN. Tôi cũng đang làm một đề tài điều khiển robot ứng dụng công nghệ xử lý ảnh. Cũng chưa phải là cao thủ gì về XLA cả, chỉ là có chút kiến thức muốn chia sẻ. Dưới đây là báo cáo đầu tiên của tôi cho thầy hướng dẫn. Bản báo cáo này khá sơ khai tuy nhiên lại chứa đựng rất nhiều kiến thức quan trọng cho các bạn mới nhập môn. Các bạn nên dowload file đính kèm để xem bài viết có đủ ảnh minh họa.


Báo cáo kết quả nghiên cứu xử lý ảnh

Phần 1: Tổng quan về xử lý ảnh
Phần 2: Thư viện xử lý ảnh OpenCV
Phần 3: Một số chương trình xử lý ảnh

Phần 1: Tổng quan về xử lý ảnh
I. Các khái niệm chung về xử lý ảnh
1. Định nghĩa
- Xử lý ảnh là quá trình chụp ảnh, phân tích nhận dạng ảnh và đưa ra các tín hiệu điều khiển hợp lý.
2. Một số khái niệm liên quan
- Pixel: phần tử ảnh. Đó là các điểm nhỏ cấu thành nên ảnh, xuất hiện khi ta tiến hành số hoá ảnh.
- Mức xám: là kết quả mã hoá cường độ sáng của một điểm ảnh với một giá trị số. Mã hoá 256 là phổ dụng nhất vì mỗi pixel ảnh sẽ được mã hoá bằng 8 bit.
II. Các bước trong quá trình xử lý ảnh















1. Chụp ảnh
- Kết nối Camera với máy tính. Camera được sử dụng ở đây là Webcam Logitech.
- Sử dụng một hàm trong thư viện OpenCV để thực hiện công việc chụp ảnh
- Sau khi chụp ảnh xong ta cũng sử dụng một hàm trong OpenCV để lưu ảnh
2. Tiền xử lý dữ liệu ảnh
Quá trình tiền xử lý dữ liệu ảnh bao gồm hai công việc sau:
+ Phối cảnh cho ảnh
+ Chuyển về ảnh xám và xác định lược đồ xám
a. Phối cảnh cho ảnh
- Ảnh sau khi chụp sẽ có một góc nghiêng nhất định so với mặt phẳng do đó cần phải thực hiện một công việc phối cảnh cho ảnh nhằm “xoay” và “kéo” ảnh thành ảnh trong mặt phẳng 2D. Việc này sẽ làm cho tỷ lệ, kích thước của ảnh giống như trong thực tế.
b. Chuyển về ảnh xám và xác định lược đồ xám
- Với ảnh màu thu được ta không thể tiến hành nhận dạng được ngay mà trước hết cần phải chuyển ảnh đã cho về ảnh xám
- Mỗi một phần tử ảnh có một cường độ sáng nhất định, cường độ sáng này được số hoá thành các mức xám và dựa vào các mức xám này ta sẽ chuyển ảnh thành ảnh xám.
- Lược đồ xám là lược đồ cung cấp thông tin về phân bố mức xám của ảnh, xác định xem ảnh là sáng hay tối.
3. Nhị phân ảnh
- Ảnh nhị phân là ảnh mà giá trị của các điểm ảnh chỉ có hai giá trị là 0 và 1 (trắng và đen)
- Để chuyển từ ảnh xám về ảnh nhị phân ta đặt một ngưỡng thích hợp để so sánh. Mức xám của ảnh sẽ được dùng để so sánh với giá trị ngưỡng này.
Biểu thức:
0 nếu u < T
f(u) =
1 nếu u  T

- Việc chọn ngưỡng là rất quan trọng, nếu chọn ngưỡng hợp lý thì ta có thể phân biệt được vật thể với nền và ngược lại.
4. Phân vùng ảnh
Sau khi thực hiện nhị phân ảnh, ta thu được một ảnh gồm hai màu đen và trắng. Giá trị của các điểm ảnh chỉ là 0 và 1. Bước tiếp theo ta cần thực hiện công việc phân vùng ảnh nhằm phân biệt vật thể với nền và ngược lại.
Thuật toán phân vùng ảnh dựa trên kỹ thuật đánh nhãn liên tiếp.
Với kỹ thuật đánh nhãn liên tiếp ta có thể sử dụng ma trận mặt nạ 3x3 để quét lần lượt tất cả các điểm ảnh. Có 2 kỹ thuật có thể sử dụng ở đây:
- Mặt nạ ảnh với 4 điểm lân cận
- Mặt nạ ảnh với 8 điểm lân cận








Mặt nạ với bốn điểm lân cận và tám điểm lân cận
Quy ước khi quét ảnh:
- Nếu điểm ảnh có giá trị là 0 thì gọi là điểm ảnh nền
- Nếu điểm ảnh có giá trị là 1 thì gọi là điểm ảnh nổi
Ta chỉ đánh nhãn các điểm ảnh nổi
Quá trình đánh nhãn ảnh được thực hiện theo các bước sau:
Bước 1: Tiến hành quét lần lượt tất cả các điểm ảnh từ trái sang phải, từ trên xuống dưới. Nếu gặp điểm ảnh nền thì bỏ qua, nếu gặp điểm ảnh nổi thì tiến hành đánh nhãn. Trước khi đánh nhãn cho mỗi điểm ảnh nổi, ta cần quan tâm đến giá trị của điểm ảnh phía trên và điểm ảnh bên trái của điểm ảnh ta đang xét. Nếu các điểm ảnh này đã được đánh nhãn thì điểm ảnh đang xét được đánh nhãn trùng với điểm ảnh trên hoặc điểm ảnh bên trái đó. Nếu các điểm ảnh bên trên và điểm ảnh bên trái là các điểm ảnh nền thì ta đánh nhãn mới cho điểm ảnh đang xét.
Bước 2: Sau khi đánh nhãn tất cả các điểm ảnh nổi, ta cần nhóm các điểm ảnh ở gần nhau nhưng lại được đánh nhãn khác nhau lại với nhau.
Bước 3: Thực hiện quét lại và đánh nhãn mới cho các nhóm điểm ảnh vừa được nhóm lại ở trên.
5. Nhận dạng mục tiêu

Là quá trình xác định chính xác vật thể cần nhận dạng. Phương pháp được sử dụng ở đây là nhận dạng dựa vào đường biên vật thể. Từ biên dạng này ta sẽ xác định được các đỉnh, các cạnh và cả tâm của vật thể. Phương pháp phổ biến hiện nay là phương pháp Cany.
Nội dung phương pháp Cany như sau:
Bước 1: Làm trơn ảnh bằng bộ lọc Gauss để loại bỏ ảnh hưởng của nhiễu
Bước 2: Tính gradient của các phần tử ảnh và hướng của gradient
i

Xác định ngưỡng:

6. Xác định tâm vật thể
Sau khi đã nhận dạng được vật thể trong không gian làm việc, ta có thể kẻ các đường bao quanh vật và dễ dàng xác định được tâm của vật thể.




Phần 2. Thư viện xử lý ảnh OpenCV
I. Giới thiệu chung về thư viện OpenCV
OpenCV (Intel® Open Source Computer Vision Library) là một thư viện mã nguồn mở của Intel viết cho xử lý ảnh. Đó là sự kết hợp các hàm của C với một vài lớp của C++ để thực hiện nhiều thuật toán xử lý ảnh rất phổ biến. Với khoảng trên 300 hàm C và một vài lớp C++ được viết riêng cho xử lý ảnh, OpenCV thực sự là một công cụ mạnh mẽ để thực hiện quá trình xử lý ảnh.
II. Cài đặt OpenCV trong Window
Quá trình cài đặt OpenCV bao gồm các bước sau:
- Tải phần mềm OpenCV trên trang Web của Intel
- Nháy đúp vào biểu tượng Setup OpenCV_1.0
Màn hình Setup hiện lên như sau:

Nhấn vào nút Next
- Cửa sổ tiếp theo hiện lên:

Chọn I accept the agreement
- Tiếp tục nhấn nút Next một vài lần nữa cho đến cửa sổ sau:

Chọn Install để tiến hành cài đặt
- Quá trình cài đặt bắt đầu:

- Sau một thời gian, quá trình cài đặt thực hiện xong. Kích vào nút Finish để hoàn tất quá trình cài đặt.


III. Liên kết OpenCV vào Visual C ++
Sau khi cài đặt xong OpenCV vào máy, để có thể viết được các chương trình xử lý ảnh sử dụng các hàm trong thư viện Open CV ta phải tiến hành liên kết nó với Visual Studio 6.0.
Các bước thực hiện quá trình liên kết như sau:
- Khởi động chương trình Visual Studio 6.0
- Vào menu Tools >> Options >> Chọn thẻ Directories >>
Tại ô Show directories for, ta chọn Include files:
Tại ô Directories, ta nhấn vào ô hình chữ nhật có nét đứt và Browse đến các thư mục sau:
C:\PROGRAM FILES\OPENCV\CV\INCLUDE
C:\PROGRAM FILES\OPENCV\OTHERLIBS\HIGHGUI
C:\PROGRAM FILES\OPENCV\CXCORE\INCLUDE
C:\PROGRAM FILES\OPENCV\OTHERLIBS\CVCAM\INCLUDE
để add các Include files đó vào Visual Studio 6.0

Tiếp theo, tại ô Show Directories ta chọn Library files và add thư viện sao vào Visual Studio 6.0
C:\PROGRAM FILES\OPENCV\LIB


Sau đó nhấn OK
Bước tiếp theo, ta vào menu Project >> Settings
Tại cửa sổ Project Settings ta chọn thẻ Link
Tại ô Object/library modules, ta thêm các thư viện sau:
cv.lib
highgui.lib
cxcore.lib
strmbase.lib



Sau đó nhấn OK để kết thúc quá trình nhúng OpenCV vào Visual Studio 6.0

Chú ý: Sau khi viết xong một chương trình xử lý ảnh ta cần copy tất cả các file trong thư mục C:\Program Files\OpenCV\bin vào thư mục chứa chương trình để đảm bảo có đủ các file thư viện động cho chương trình chạy hoàn hảo.

Phần 3. Một số chương trình xử lý ảnh đầu tiên

1. Chương trình chụp và lưu ảnh

#include "stdio.h"
#include "cv.h"
#include "highgui.h"
#include "cxcore.h"

int main (void)
{
CvCapture* capture = cvCaptureFromCAM (CV_CAP_ANY);
cvNamedWindow( "Pic 1", CV_WINDOW_AUTOSIZE);

IplImage *frame = cvQueryFrame (capture);
cvShowImage ("Pic 1", frame);
cvSaveImage("Picture.jpg",frame);
cvWaitKey(100);

cvReleaseCapture (&capture);
cvDestroyWindow ("Pic 1");
return 0;
}

2. Chương trình xác định phân bố mức xám của ảnh

include <cv.h>
#include <highgui.h>
#include <stdio.h>
#include <stdlib.h>
int main( int argc, char** argv )
{
int index = 0;
int bin_w,i;
float max_value = 0;
float range_0[]={0,256};
float* ranges[] = { range_0 };

IplImage *dst_image = 0, *hist_image = 0;
IplImage* src = 0;IplImage* src1 = 0;
CvHistogram *hist;
CvMat* lut_mat;

int hist_size = 256;
uchar lut[256];
CvCapture* capture = 0;
capture = cvCreateCameraCapture( index );
src1 = cvQueryFrame( capture );
cvSaveImage( "Long.jpg" ,src1 );

char file_name[] = "Long.jpg";
src = cvLoadImage( file_name, CV_LOAD_IMAGE_GRAYSCALE);
dst_image = cvCloneImage(src);
hist_image = cvCreateImage(cvSize(320,200), 8, 1);
hist = cvCreateHist(1, &hist_size, CV_HIST_ARRAY, ranges, 1);
lut_mat = cvCreateMatHeader( 1, 256, CV_8UC1 );

for( i = 0; i < 256; i++ )
lut[i] = (uchar)i ;
cvSetData( lut_mat, lut, 0 );
cvLUT( src, dst_image, lut_mat );
cvCalcHist( &dst_image, hist, 0, 0 );
cvZero( dst_image );
cvGetMinMaxHistValue( hist, 0, &max_value, 0, 0 );
cvScale( hist->bins, hist->bins, ((double)hist_image->height)/max_value, 0 );
cvSet( hist_image, cvScalarAll(255), 0 );
bin_w = cvRound((double)hist_image->width/hist_size);

for( i = 0; i < hist_size; i++ )
cvRectangle( hist_image, cvPoint(i*bin_w, hist_image->height),
cvPoint((i+1)*bin_w, hist_image->height - cvRound (cvGetReal1D(hist->bins,i))),cvScalarAll(0), -1, 8, 0 );
cvNamedWindow( "Capture", 1 );
cvShowImage( "Capture", src1 );
cvNamedWindow("Image", 1);
cvShowImage( "Image", src );
cvNamedWindow("Histogram", 1);
cvShowImage( "Histogram", hist_image );
cvWaitKey(0);
cvReleaseImage(&src);
cvReleaseImage(&dst_image);
cvReleaseHist(&hist);

return 0;

}

3. Chương trình nhận dạng biên vật thể

#include "cv.h"
#include "highgui.h"
#include "stdio.h"

int main( int argc, char** argv )
{
IplImage* image; IplImage* src;
char* filename = argc == 2 ? argv[1] : (char*)"Long.jpg";
image = cvLoadImage( filename, 0);
src = cvCreateImage( cvGetSize(image), 8, 0 );
cvEqualizeHist( image , src);
// Phan vung anh
IplImage* dst = cvCreateImage( cvGetSize(src), 8, 3 );
CvMemStorage* storage = cvCreateMemStorage(0);
CvSeq* contour = 0;

cvNamedWindow( "Source1", 1 );
cvShowImage( "Source1", src );
cvThreshold( src, src, 230, 255, CV_THRESH_BINARY );// xac dinh nguong
cvNamedWindow( "Source2", 1 );
cvShowImage( "Source2", src );
cvFindContours( src, storage, &contour, sizeof(CvContour), CV_RETR_CCOMP, CV_CHAIN_APPROX_SIMPLE, cvPoint(0,0) );
cvZero( dst );
int i = 0;
for( ; contour != 0; contour = contour->h_next )
{
i = i++ ;
printf("\n so %i %d.", i ,contour);
CvScalar color = CV_RGB( rand()&255, rand()&255, rand()&255 );
cvDrawContours( dst, contour, color, color, 1, 1, 8 );
}
cvNamedWindow( "Components", 1 );
cvShowImage( "Components", dst );
cvWaitKey(0);
cvReleaseImage(&dst);
cvReleaseImage(&src);
cvReleaseImage(&image);

cvDestroyWindow("Components");
cvDestroyWindow("Source1");
cvDestroyWindow("Source2");
return 0;
}
File Kèm Theo
File Type: rar Bao cao Nguyen Ba Long.rar (295.4 KB, 3017 lần tải)
mrlong vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 13-02-2009, 12:19 AM   #14
thaithien
Đệ tử 7 túi
 
Tham gia ngày: Aug 2007
Bài gửi: 213
:
Thanks vì đã share cuốn tài liệu này.Đọc xong bài này đã giúp hiểu thêm sơ sơ về xử lý ảnh.Đây chỉ là bản sơ khai,chừng nào có bản chính thức thì post lên nhé.Thanks
thaithien vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 29-08-2009, 09:52 AM   #15
thang_dk
Đệ tử 1 túi
 
thang_dk's Avatar
 
Tham gia ngày: Sep 2008
Bài gửi: 16
:
cảm ơn các bác nhìu.em mới vào nghề có gì cá bác giúp đỡ nha!em thấy bài viết làm em mở mang nhìu về mảng này.thank!!!!!!!!!!!!!!!!!1111
__________________
hãy làm những gì bạn thích_________và thích những gì bạn đã làm
thang_dk vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời

Ðiều Chỉnh
Xếp Bài

Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến

Similar Threads
Ðề tài Người gửi Chuyên mục Trả lời Bài mới
Nguyễn Thế Vinh - căn bản lập trình CCS NTVinh Các ngôn ngữ lập trình khác (CCS C, HT PIC,...) 53 28-09-2012 12:08 PM
bài tập thực hành căn bản orcad tanhot Thực hành 24 05-07-2011 09:26 AM


Múi giờ GMT. Hiện tại là 06:16 PM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam