Tổng quan về open CV trong python để xây dựng ứng dụng xử lí ảnh

30 66 0
Tổng quan về open CV trong python để xây dựng ứng dụng xử lí ảnh

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI LOGO KHOA Học phần Công cụ phát triển phần mềm Đề tài : Tổng quan open CV python để xây dựng ứng dụng xử lí ảnh Giảng viên : Ths Nguyễn Thái Cường Lớp : KTPM2-K13 Nhóm : 10 Sinh viên : Nguyễn Văn Hảo Trần Thành Công Vũ Đức Công (C) Tạ Quốc Đạt Webiste: https://haui.edu.vn © 2021 Hanoi University of Industry All rights reserved TRƯỜNG ĐẠI HỌC CÔNG NỘI Công cụ phát triểnNGHIỆP phầnHÀ mềm LOGO KHOA MỤC LỤC Phần I : Tìm hiểu OpenCV Lịch sử phát triển OpenCV OpenCV gì? Các ngơn ngữ để lập trình OpenCV Cài đặt Python, OpenCV OpenCV cho Python Phần II : Ứng dụng OpenCV Ứng dụng tính OpenCV Các bước xử lý ảnh với OpenCV Pyhon? Thực nghiệm xử lý ảnh Webiste: https://haui.edu.vn © 2021 Hanoi University of Industry All rights reserved TRƯỜNG ĐẠI HỌC CƠNG NỘI Cơng cụ phát triểnNGHIỆP phầnHÀ mềm LOGO KHOA PHẦN I : TÌM HIỂU VỀ OPENCV Lịch Sử phát triển OpenCV - Chính thức mắt vào năm 1999 - Năm 2006, phiên - OpenCV 1.0 phát hành - Vào tháng 10/2009, phiên thứ hai - OpenCV phát hành - Vào tháng 08/2012, OpenCV vận hành tổ chức phi lợi nhuận OpenCV.org Webiste: https://haui.edu.vn © 2021 Hanoi University of Industry All rights reserved TRƯỜNG ĐẠI HỌC CƠNG NỘI Cơng cụ phát triểnNGHIỆP phầnHÀ mềm LOGO KHOA PHẦN I : TÌM HIỂU VỀ OPENCV OpenCV gì? - OpenCV viết tắt cho Open Source Computer Vision Library OpenCV thư viện nguồn mở hàng đầu cho Computer Vision Machine Learning, có thêm tính tăng tốc GPU cho hoạt động theo real-time - OpenCV viết ngôn ngữ lập trình C++ Webiste: https://haui.edu.vn © 2021 Hanoi University of Industry All rights reserved TRƯỜNG ĐẠI HỌC CƠNG NỘI Cơng cụ phát triểnNGHIỆP phầnHÀ mềm LOGO KHOA PHẦN I : TÌM HIỂU VỀ OPENCV Các ngơn ngữ để lập trình OpenCV - Có nhiều ngơn ngữ hỗ trợ ngơn ngữ mạnh riêng, tùy theo nhu cầu mà chọn ngôn ngữ phù hợp C++ Python Android Java C# Webiste: https://haui.edu.vn © 2021 Hanoi University of Industry All rights reserved TRƯỜNG ĐẠI HỌC CƠNG NỘI Cơng cụ phát triểnNGHIỆP phầnHÀ mềm LOGO KHOA PHẦN I : TÌM HIỂU VỀ OPENCV Cài đặt Python, OpenCV OpenCV cho Python Cài đặt Python - B1: Bạn tải python trang python.org có tất phiên phù hợp với hệ điều hành bạn - B2: Sau tải xong, click vào file vừa tải tiến hành cài đặt, sau bấm Install now - B3: Sau cài đặt xong, bạn sử dụng Python cách gõ python vào cửa sổ IDLE Webiste: https://haui.edu.vn © 2021 Hanoi University of Industry All rights reserved TRƯỜNG ĐẠI HỌC CÔNG NỘI Công cụ phát triểnNGHIỆP phầnHÀ mềm LOGO KHOA PHẦN I : TÌM HIỂU VỀ OPENCV Cài đặt Python, OpenCV OpenCV cho Python Cài đặt OpenCV - B1: Bạn tải opencv trang opencv.org có tất phiên phù hợp với hệ điều hành bạn - B2: Sau tải xong, click vào file vừa tải tiến hành cài đặt, ví dụ cài đặt OpenCV ổ E - B3: Sau cài đặt xong, thư mục OpenCV xuất Webiste: https://haui.edu.vn ổ E © 2021 Hanoi University of Industry All rights reserved TRƯỜNG ĐẠI HỌC CƠNG NỘI Cơng cụ phát triểnNGHIỆP phầnHÀ mềm LOGO KHOA PHẦN I : TÌM HIỂU VỀ OPENCV Cài đặt Python, OpenCV OpenCV cho Python Cài đặt OpenCV cho Python - B1: Bạn tải opencv trang opencv.org có tất phiên phù hợp với hệ điều hành bạn - B2: Sau tải xong, click vào file vừa tải tiến hành cài đặt,ví dụ cài đặt OpenCV ổ E - B3: Sau cài đặt xong, thư mục OpenCV xuất ổ E Webiste: https://haui.edu.vn © 2021 Hanoi University of Industry All rights reserved TRƯỜNG ĐẠI HỌC CƠNG NỘI Cơng cụ phát triểnNGHIỆP phầnHÀ mềm LOGO KHOA PHẦN : ỨNG DỤNG CỦA OPENCV I Ứng dụng tính OpenCV Hệ thống nhận diện khuôn mặt - Hệ thống nhận dạng khn mặt cơng nghệ có khả phù hợp với khuôn mặt người, thường sử dụng để xác thực người dùng thông dịch vụ xác minh ID , hoạt động cách định rõ đo đặc điểm qua khn mặt từ hình ảnh định Webiste: https://haui.edu.vn © 2021 Hanoi University of Industry All rights reserved TRƯỜNG ĐẠI HỌC CÔNG NỘI Công cụ phát triểnNGHIỆP phầnHÀ mềm LOGO KHOA PHẦN : ỨNG DỤNG CỦA OPENCV I Ứng dụng tính OpenCV Tương tác người máy tính (HCI) - Tương tác người với máy tính ( HCI ) nghiên cứu thiết kế dụng cơng nghệ máy tính , tập trung vào giao diện người dùng ) máy tính Các nhà nghiên cứu lĩnh vực HCI quan người tương tác với máy tính thiết kế công nghệ cho sử ( người sát cách phép người tương tác với máy tính theo cách mới Webiste: https://haui.edu.vn © 2021 Hanoi University of Industry All rights reserved 10 TRƯỜNG ĐẠI HỌC CƠNG NỘI Cơng cụ phát triểnNGHIỆP phầnHÀ mềm LOGO KHOA PHẦN : ỨNG DỤNG CỦA OPENCV II Các bước xử lý ảnh với OpenCV Pyhon? Bước 4: Lấy giá trị màu điểm ảnh - Đoạn lệnh sau lấy giá trị màu điểm ảnh vi trí 50, 50 với gốc tọa độ điểm bên trái hình ảnh Webiste: https://haui.edu.vn © 2021 Hanoi University of Industry All rights reserved 16 TRƯỜNG ĐẠI HỌC CƠNG NỘI Cơng cụ phát triểnNGHIỆP phầnHÀ mềm LOGO KHOA PHẦN : ỨNG DỤNG CỦA OPENCV II Các bước xử lý ảnh với OpenCV Pyhon? Bước 5: Cắt ảnh - Đoạn lệnh sau cắt ảnh có tọa độ điểm bên trái (50, 60) tọa độ điểm dưới bên phải (350, 360) Webiste: https://haui.edu.vn © 2021 Hanoi University of Industry All rights reserved 17 TRƯỜNG ĐẠI HỌC CƠNG NỘI Cơng cụ phát triểnNGHIỆP phầnHÀ mềm LOGO KHOA PHẦN : ỨNG DỤNG CỦA OPENCV II Các bước xử lý ảnh với OpenCV Pyhon? Bước 6: Thay đổi kích thước ảnh - Để thay đổi kích thước ảnh opencv dùng hàm resize Hàm cần xác định rõ chiều cao, chiều rộng ảnh sau biến đổi Tuy nhiên ảnh sau thay đổi thường tỷ lệ chiều cao, chiều rộng với ảnh gốc Đoạn lệnh sau biến đối ảnh gốc có chiều rộng 580 pixel sang ảnh có chiều rộng 300 pixel Webiste: https://haui.edu.vn © 2021 Hanoi University of Industry All rights reserved 18 TRƯỜNG ĐẠI HỌC CƠNG NỘI Cơng cụ phát triểnNGHIỆP phầnHÀ mềm LOGO KHOA PHẦN : ỨNG DỤNG CỦA OPENCV II Các bước xử lý ảnh với OpenCV Pyhon? Bước 7: Xoay ảnh - Để xoay ảnh ta cần xác định gốc xoay hướng xoay Sau xác định xong ta tính ma trận xoay hàm getRotationMatrix2D opencv Cuối ta nhân ma trận với ma trận ảnh gốc ta ảnh sau xoay Webiste: https://haui.edu.vn © 2021 Hanoi University of Industry All rights reserved 19 TRƯỜNG ĐẠI HỌC CƠNG NỘI Cơng cụ phát triểnNGHIỆP phầnHÀ mềm LOGO KHOA PHẦN : ỨNG DỤNG CỦA OPENCV III Thực nghiệm xử lý ảnh - Đây ảnh gốc trước chưa chỉnh sửa Webiste: https://haui.edu.vn © 2021 Hanoi University of Industry All rights reserved 20 TRƯỜNG ĐẠI HỌC CƠNG NỘI Cơng cụ phát triểnNGHIỆP phầnHÀ mềm LOGO KHOA PHẦN : ỨNG DỤNG CỦA OPENCV III Thực nghiệm xử lý ảnh Chuyển ảnh màu sang Grayscale: Code: from PIL import Image img = Image.open("rick-morty.png") # If you want a greyscale image, simply convert it to the L (Luminance) mode: new_img = img.convert('L') new_img.save('rick-morty-l.png') Webiste: https://haui.edu.vn © 2021 Hanoi University of Industry All rights reserved 21 TRƯỜNG ĐẠI HỌC CƠNG NỘI Cơng cụ phát triểnNGHIỆP phầnHÀ mềm LOGO KHOA PHẦN : ỨNG DỤNG CỦA OPENCV III Thực nghiệm xử lý ảnh Chuyển ảnh màu sang hafttone Code: from PIL import Image img = Image.open("rick-morty.png") # black and white image new_img = img.convert('1') new_img.save('rick-morty-1.png') Webiste: https://haui.edu.vn © 2021 Hanoi University of Industry All rights reserved 22 TRƯỜNG ĐẠI HỌC CƠNG NỘI Cơng cụ phát triểnNGHIỆP phầnHÀ mềm LOGO KHOA PHẦN : ỨNG DỤNG CỦA OPENCV III Thực nghiệm xử lý ảnh Thay đổi độ tương phản (Contrast) Code: from PIL import Image, ImageEnhance # PIL accesses images in Cartesian co-ordinates, so it is Image[columns, rows] img = Image.open("rick-morty.png") # Enhance constrast enhancer = ImageEnhance.Contrast(img) for i in range(1, 8): factor = i / 4.0 new_img = enhancer.enhance(factor) new_img.save('rick-morty-%s.png' % i) Webiste: https://haui.edu.vn © 2021 Hanoi University of Industry All rights reserved 23 TRƯỜNG ĐẠI HỌC CƠNG NỘI Cơng cụ phát triểnNGHIỆP phầnHÀ mềm LOGO KHOA PHẦN : ỨNG DỤNG CỦA OPENCV III Thực nghiệm xử lý ảnh Thay đổi độ sáng (Brightness) Code: from PIL import Image, ImageEnhance # PIL accesses images in Cartesian co-ordinates, so it is Image[columns, rows] img = Image.open("rick-morty.png") enhancer = ImageEnhance.Brightness(img) new_img = enhancer.enhance(1.8) # Darker # new_img = enhancer.enhance(0.8) new_img.save("rick-morty-brightness.png") Webiste: https://haui.edu.vn © 2021 Hanoi University of Industry All rights reserved 24 TRƯỜNG ĐẠI HỌC CƠNG NỘI Cơng cụ phát triểnNGHIỆP phầnHÀ mềm LOGO KHOA PHẦN : ỨNG DỤNG CỦA OPENCV III Thực nghiệm xử lý ảnh Làm mờ (Gaussian blur) Code: from PIL import Image, ImageFilter # PIL accesses images in Cartesian co-ordinates, so it is Image[columns, rows] img = Image.open("rick-morty.png") new_img = img.filter(ImageFilter.GaussianBlur(radius=20)) new_img.save("rick-morty-gaussian-blur.png") Webiste: https://haui.edu.vn © 2021 Hanoi University of Industry All rights reserved 25 TRƯỜNG ĐẠI HỌC CÔNG NỘI Công cụ phát triểnNGHIỆP phầnHÀ mềm LOGO KHOA PHẦN : ỨNG DỤNG CỦA OPENCV III Thực nghiệm xử lý ảnh Làm tối bốn góc (Vignette) Code: import cv2 import numpy as np img = cv2.imread('rick-morty.png') kernel = kernel_y * kernel_x.T mask = 255 * kernel / np.linalg.norm(kernel) output = np.copy(img) rows, cols = img.shape[:2] # applying the mask to each channel in the input image # generating vignette mask using Gaussian kernels for i in range(3): kernel_x = cv2.getGaussianKernel(cols, 200) kernel_y = cv2.getGaussianKernel(rows, 200) Webiste: https://haui.edu.vn output[:, :, i] = output[:, :, i] * mask cv2.imwrite('rick-morty-vig.png', output) © 2021 Hanoi University of Industry All rights reserved 26 TRƯỜNG ĐẠI HỌC CƠNG NỘI Cơng cụ phát triểnNGHIỆP phầnHÀ mềm LOGO KHOA PHẦN : ỨNG DỤNG CỦA OPENCV III Thực nghiệm xử lý ảnh Tìm cạnh phương pháp Canny Code: import cv2 img = cv2.imread('rick-morty.png', 0) edges = cv2.Canny(img, 100, 200) cv2.imwrite('rick-morty-edges.png', edges) Webiste: https://haui.edu.vn © 2021 Hanoi University of Industry All rights reserved 27 TRƯỜNG ĐẠI HỌC CƠNG NỘI Cơng cụ phát triểnNGHIỆP phầnHÀ mềm LOGO KHOA PHẦN : ỨNG DỤNG CỦA OPENCV III Thực nghiệm xử lý ảnh Vẽ Countour ảnh Code: import numpy as np import cv2 img = cv2.imread('rick-morty.png') gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) ret, thresh = cv2.threshold(gray, 120, 255, cv2.THRESH_BINARY) contours = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)[2] for contour in contours: cv2.drawContours(img, contour, -1, (0, 255, 0), 3) cv2.imwrite('rick-morty-contour.png', img) Webiste: https://haui.edu.vn © 2021 Hanoi University of Industry All rights reserved 28 TRƯỜNG ĐẠI HỌC CƠNG NỘI Cơng cụ phát triểnNGHIỆP phầnHÀ mềm LOGO KHOA TỔNG KẾT - Qua nội dụng trên, tìm hiểu lịch sử phát triển OpenCV - Hiểu OpenCV thư viện mở hang đầu cho Computer Vision Machine Learning - Hiểu OpenCV lập trình qua nhiều ngơn ngữ biết cách cài đặt OpenCv cho python - Tìm hiểu ứng dụng tính OpenCV thiết thực công việc - Cuối thấy OpenCV tiềm tương lai Webiste: https://haui.edu.vn © 2021 Hanoi University of Industry All rights reserved 29 TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI Webiste: https://haui.edu.vn © 2021 Hanoi University of Industry All rights reserved LOGO KHOA 30 ... OpenCV Lịch sử phát triển OpenCV OpenCV gì? Các ngơn ngữ để lập trình OpenCV Cài đặt Python, OpenCV OpenCV cho Python Phần II : Ứng dụng OpenCV Ứng dụng tính OpenCV Các bước xử lý ảnh với OpenCV... triểnNGHIỆP phầnHÀ mềm LOGO KHOA PHẦN I : TÌM HIỂU VỀ OPENCV Cài đặt Python, OpenCV OpenCV cho Python Cài đặt OpenCV cho Python - B1: Bạn tải opencv trang opencv.org có tất phiên phù hợp với hệ điều hành... triểnNGHIỆP phầnHÀ mềm LOGO KHOA PHẦN I : TÌM HIỂU VỀ OPENCV Cài đặt Python, OpenCV OpenCV cho Python Cài đặt OpenCV - B1: Bạn tải opencv trang opencv.org có tất phiên phù hợp với hệ điều hành bạn

Ngày đăng: 07/06/2021, 11:25

Tài liệu cùng người dùng

Tài liệu liên quan