Xử Lý ảnh Với Python Và Opencv - Tài Liệu Text - 123doc

Tải bản đầy đủ (.docx) (101 trang)
  1. Trang chủ
  2. >>
  3. Công Nghệ Thông Tin
  4. >>
  5. Kỹ thuật lập trình
Xử lý ảnh với Python và Opencv

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 (3.15 MB, 101 trang )

--------Trường Đại Học Công Nghiệp Hà NộiKhoa Công Nghệ Thông Tin--------Báo cáo thực tập tốt nghiệpĐề tài:Xử lý ảnh với OpenCV và PythonSinh viên thực hiện : Đỗ Xuân SơnLớp: KHMT2-K10Giáo viên hướng dẫn :TS.Ngô Đức VĩnhMở ĐầuI.Lý Do Chọn Đề TàiXã hội ngày càng phát triển thì công nghệ cũng càng ngày càng pháttriển theo từ các cuộc cách mạng công nghiệp đầu tiên đến bây giờ là cuộccách mạng công ngiệp 4.0 . Là cuộc cách mạng mà cốt lõi là công nghệthông tin với các thiết bị thông minh như robot hay xe tự lái để tăng năngsuất lao động và phục vụ cho các nhu cầu đời sống con người nhưng vấnđề gặp phải chung ở đây đối với các thiết bị này là chúng vẫn còn rất ngâyngô so để chúng có trở nên thực sự thông minh thì con người phải dạy chochúng hiểu và phân được các sự vật trong thực tế nhằm đưa ra các bài toánxử lý chính xác nhằm đạt được mục đích công việc từ đó đã phát triển nênkhái niệm Image Processing . Qua quá trình phát triển thì các lập trình viênđã phát triển các thư viện hỗ trợ hay còn gọi là OpenCV cho quá trình xử lýảnh. Nhờ đó mà khi xử lý ảnh chúng ta không cần phải xây dựng lại cáchàm xử lý ảnh mà chỉ cần phát triển dựa trên những gì sẵn có . Do vậynhiều người chỉ biết đến xử lý ảnh với OpenCV . Nhưng hiện tại Pythoncũng đã phát triển các thư viện dành riêng cho xử lý ảnh . Thế nên trong đềtài này em muốn đưa ra sự được ưu điểm nhược điểm khi xử lý ảnh vớiPython so với thư viện OpenCV vốn đã rất quen thuộc với hầu hết các lậptrình viên trong lĩnh vực xử lý ảnh2II.Mục Tiêu Nghiên CứuTìm ra được các ưu điểm và nhược khi xử lý ảnh với python vàOpenCV để từ đó giúp người sử dụng khi nào nên xử dụng các thư việncủa python để xử lý ảnh khi nào nên xử dụng OpenCV để xử lý ảnh nhằmđem lại hiệu quả tối đa cũng như sự khoa học trong công việc xử lý ảnhIII.Phương Pháp Nghiên CứuTìm hiểu về một số kĩ thuật trong xử lý ảnh và một số modul thườngđược sử dụng để hiểu về các thuật toán và mô hình cho xử lý ảnh một cáchtổng quát nhấtTìm hiểu về OpenCV để trả lời cho những câu hỏi OpenCV là gì tạisao phải dùng OpenCV ,Ai dùng OpenCV, Các Cấu Trúc Tập Lệnh trongOpenCV , OpenCVHỗ trợ người dùng như thế nào trong xử lý ảnhTương tư với PythonSau đó rút ra nhận xét về ưu nhược điểm khi xử lý ảnh với OpenCV vàPyThonIV. Đối tượng nghiên cứuOpen CV và python3CHƯƠNG I: TỔNG QUAN VỀ XỬ LÝ ẢNH1.1.Tổng Quan Về Lĩnh Vực Nghiên CứuXử lý ảnh là một lĩnh vực mang tính khoa học và công nghệ. Nó là mộtngành khoa học mới mẻ so với nhiều ngành khoa học khác nhưng tốc độphát triển của nó rất nhanh, kích thích các trung tâm nghiên cứu, ứng dụng,đặc biệt là máy tính chuyên dụng riêng cho nó.Xử lý ảnh được đưa vào giảng dạy ở bậc đại học ở nước ta khoảngchục năm nay. Nó là môn học liên quan đến nhiều lĩnh vực và cần nhiềukiến thức cơ sở khác. Đầu tiên phải kể đến Xử lý tín hiệu số là một mônhọc hết sức cơ bản cho xử lý tín hiệu chung, các khái niệm về tích chập,các biến đổi Fourier, biến đổi Laplace, các bộ lọc hữu hạn… Thứ hai, cáccông cụ toán như Đại số tuyến tính, Sác xuất, thống kê. Một số kiến thứcần thiết như Trí tuệ nhân tao, Mạng nơ ron nhân tạo cũng được đề cậptrong quá trình phân tích và nhận dạng ảnh.Các phương pháp xử lý ảnh bắt đầu từ các ứng dụng chính: nâng caochất lượng ảnh và phân tích ảnh. Ứng dụng đầu tiên được biết đến là nângcao chất lượng ảnh báo được truyền qua cáp từ Luân đôn đến New York từnhững năm 1920. Vấn đề nâng cao chất lượng ảnh có liên quan tới phân bốmức sáng và độ phân giải của ảnh. Việc nâng cao chất lượng ảnh được pháttriển vào khoảng những năm 1955. Điều này có thể giải thích được vì sauthế chiến thứ hai, máy tính phát triển nhanh tạo điều kiện cho quá trình xửlý ảnh sô thuận lợi. Năm 1964, máy tính đã có khả năng xử lý và nâng caochất lượng ảnh từ mặt trăng và vệ tinh Ranger 7 của Mỹ bao gồm: làm nổiđường biên, lưu ảnh. Từ năm 1964 đến nay, các phương tiện xử lý, nângcao chất lượng, nhận dạng ảnh phát triển không ngừng. Các phương pháptri thức nhân tạo như mạng nơ ron nhân tạo, các thuật toán xử lý hiện đại vàcải tiến, các công cụ nén ảnh ngày càng được áp dụng rộng rãi và thu nhiềukết quả khả quan.Để dễ tưởng tượng, xét các bước cần thiết trong xử lý ảnh. Đầu tiên, ảnh tựnhiên từ thế giới ngoài được thu nhận qua các thiết bị thu (như Camera,máy chụp ảnh). Trước đây, ảnh thu qua Camera là các ảnh tương tự (loạiCamera ống kiểu CCIR). Gần đây, với sự phát triển của công nghệ, ảnhmàu hoặc đen trắng được lấy ra từ Camera, sau đó nó được chuyển trựctiếp thành ảnh số tạo thuận lợi cho xử lý tiếp theo. (Máy ảnh số hiện nay làmột thí dụ gần gũi). Mặt khác, ảnh cũng có thể tiếp nhận từ vệ tinh; có thểquét từ ảnh chụp bằng máy quét ảnh. Hình 1.1 dưới đây mô tả các bước cơbản trong xử lý41.2.Một số phép xử lý ảnh1.2.1.Biến đổi ảnh xám(Grayscale convert)Biến đổi ảnh xám là quá trình chuyển từ ảnh màu vể ảnh xámTrong xử lý ảnh, việc chuyển đổi ảnh màu sang ảnh xám là công việc vôcùng phổ biến.Ảnh màu thực chất chỉ là tập hợp của những ma trận số có cùng kíchthước . Khi muốn xử lý thông tin trên ảnh, sẽ dễ dàng hơn nếu ta chỉ xử lýdữ liệu trên một ma trận số thay vì nhiều ma trận số. Việc biến đổi ảnh màuvề ảnh số (Grayscale converting) xuất hiện vì mục đích trên - biến đổithông tin ảnh về một ma trận số hai chiều duy nhất.5Giả sử, hình ảnh của bạn được lưu trữ dưới dạng RGB (Red-Green-Blue).Điều này có nghĩa bạn có ba ma trận xám tương ứng cho màu Red, Green,Blue. Công việc của bạn là tìm cách tổng hợp ba ma trận này về thành mộtma trận duy nhất. Một trong số các công thức phổ biến để thực hiện việc đólàY=0.2126R+0.7152G+0.0722BTrong đó:•Y: ma trận xám cần tìm•R: ma trận xám đỏ của ảnh•G: ma trận xám lục của ảnh•B: ma trận xám lam của ảnhNếu bạn chưa quen về việc thực hiện phép toán trên ma trận, hãy hình dungY, R, G, B là giá trị mức xám trên các ô có tọa độ giống nhau.1.2.2.Biến đổi ảnh đen trắngTừ ảnh xám, bạn có thể biến đổi về thành ảnh chỉ có hai màu đen-trắng(black-and-white)Ảnh đen trắng thường được ứng dụng trong bài toán phân vùng ảnh (Imagesegmentation). Giả sử trong hình ví dụ trên, bằng cách biến đổi ảnh về nhịphân, bạn có thể loại bỏ các thông khung cảnh xung quanh và chỉ giữ lạihai con cá heo trên hình6Ảnh đen trắng, như tên gọi, chỉ có hai màu đen với giá trị là 0 và trắng vớigiá trị 255. Bài toán đặt ra là làm thế nào để biến đổi ảnh xám (hay nói cáchkhác là một ma trận 2 chiều với giá trị mỗi ô trong khoảng 0-255) về thànhmột ma trận 2 chiều với giá trị mỗi ô là 0 hoặc 255.Cách giải quyết là chọn một ngưỡng (threshold) để xác định đâu là điểmảnh đen và đâu là điểm ảnh trắng. Nếu giá trị trên ảnh xám lớn hơn ngưỡngthreshold, đấy là điểm ảnh trắng và ngược lại.Gọi ảnh xám là Gray, ảnh đen trắng cần xác định là BW, tọa độ các pixeltrên hình là (x,y), ta có- BW(x,y) = 255 nếu Gray(x,y) > threshold- BW(x,y) = 0 nếu Gray(x,y)

Từ khóa » Thư Viện Xử Lý ảnh Python