BÁO CÁO BÀI TẬP LỚN Môn Xử lý ảnh trong công nghiệp

163 1 0
BÁO CÁO BÀI TẬP LỚN Môn Xử lý ảnh trong công nghiệp

Đ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 GIAO THÔNG VẬN TẢI KHOA ĐIỆN - ĐIỆN TỬ BỘ MÔN ĐIỀU KHIỂN HỌC *********** BÁO CÁO BÀI TẬP LỚN Môn: Xử lý ảnh công nghiệp Thành viên: Vũ Hồng Dũng Đỗ Đức Chính Nguyễn Duy Trung Đào Phương Nam Bùi Đức Lương 181600914 181611116 181610480 181611830 181613334 Lớp: Tự Động Hóa-K59 Giảng viên hướng dẫn: Phí Văn Lâm Hà Nội, 27 /02 /2022 TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI  BÀI TẬP LỚN XỬ LÝ ẢNH Giảng viên hướng dẫn: thầy Phí Văn Lâm Lớp chuyên ngành: Tự động hóa – Khóa 59 Sinh viên thực hiện: Đỗ Đức Chính Bùi Đức Lương Vũ Hoàng Dũng Nguyễn Duy Trung Đào Phương Nam Hà Nội – 2021 Mục lục Danh mục từ viết tắt CCIR Campaign for Comprehensive Immigration Reform CGA Color Graphic Adaptor) CMYK Cyan – Magenta – Yellow - Key EAN European Article Number RGB Hệ màu Red – Green - Blue UPC Universal Product Code Chương 1: Lý thuyết chung (Nguyễn Duy Trung) Ảnh số 1.1 Ảnh số gì? Ảnh sớ tập hợp hữu hạn các điểm ảnh với mức xám phù hợp dùng để mô tả ảnh gần với ảnh thật Số điểm ảnh xác định độ phân giải của ảnh, ảnh có độ phân giải cao thì thể rõ nét các đặc điểm của tấm hình, làm cho tấm ảnh trở nên thực sắc nét a Điểm ảnh (Picture Element) Điểm ảnh (Pixel) phần tử của ảnh số tại tọa độ (x, y) với độ xám hoặc màu nhất định Kích thước khoảng cách giữa các điểm ảnh được chọn thích hợp cho mắt người cảm nhận liên tục về không gian mức xám ( hoặc màu) của ảnh số gần ảnh thật Mỗi phần tử ma trận được gọi phần tử ảnh b Mức xám của ảnh Mức xám kết của biến đổi tương ứng giá trị độ sáng của điểm ảnh với gía trị ngun dương Thơng thường xác định [0, 255] tùy thuộc vào giá trị mà điểm ảnh được biểu diễn Các thang giá trị mức xám thông thường: 16, 32, 64, 128, 256 Mức 256 mức phổ dụng vì từ kỹ thuật máy tính dùng byte (8 bit) để biểu diễn mức xám Mức xám dùng byte biểu diễn : 28 = 256 mức, tức từ đến 255 c Độ phân giải của ảnh Độ phân giải của ảnh (Resolution) của ảnh mật độ điểm ảnh được ấn định ảnh số được hiển thị Khoảng cách giữa các điểm ảnh phải được chọn cho mắt người thấy được liên tục của ảnh Việc lựa chọn khoảng cách thích hợp tạo nên mật độ phân bớ, độ phân giải được phân bố theeo trục x y khơng gian chiều Ví dụ: Độ phân giải của ảnh hình CGA (Color Graphic Adaptor) lưới điểm theo chiều ngang hình: 320 điểm chiều dọc*200 điểm ảnh (320*200) Rõ ràng hình CGA 12” ta nhận thấy mịn hình CGA 17” độ phân giải 320*200 Vì mật độ diện tích mà hình rộng thì độ mịn ( độ liên tục của các điểm) kém d Các cách phân loại ảnh • Ảnh nhị phân: Giá trị xám của tất các điểm ảnh chỉ nhận giá trị hoặc vậy điểm ảnh ảnh nhị phân được biểu diễn bởi bit Ảnh xám: Giá trị xám nằm [0, 255] vậy điểm ảnh ảnh nhị phân được biểu diễn bởi byte • Ảnh màu: - Hệ màu RGB: Một pixel được biểu diễn giá trị (R, G, B) R, G, B giá trị xám được biểu biểu diễn byte Khi ta có ảnh 24 bits P(x, y) = (R, G, B) – Hệ màu CMY: phần bù của hệ màu RGB (C, M, Y) = (1, 1, 1) – (R, G, B) Hay C+R=M+G=Y+B=1 => Hệ màu thường được dùng máy in – Hệ màu CMYK K độ đậm nhạt của màu K= min(C,M,Y) P(x, y) = (C-K, M-K, V-K, K) e Các giai đoạn xử lý ảnh Hình 1-1: Các giai đoạn xử lý ảnh 1.2 Xử lý ảnh với Matlab a Xử lý ảnh Đầu tiên, hình ảnh từ thế giới bên được các thiết bị thu nhận, ghi hình ảnh camera, máy chụp hình, máy quét, Trước đây, ảnh thu qua Camera các ảnh tương tự (loại Camera ống kiểu CCIR) Giờ đây, với phát triển của công nghệ, ảnh màu hoặc đen trắng được lấy từ Camera, sau được chủn trực tiếp thành ảnh sớ tạo tḥn lợi cho xử lý tiếp theo Ngoài ra, ảnh có thể tiếp nhận từ vệ tinh, b Các giai đoạn xử lý ảnh Hình 1-2: Các giai đoạn xử lý ảnh matlab - Thu nhận ảnh (Image Acquisition): Ảnh được thu từ các nguồn máy ảnh, máy quay phim, máy quét, ảnh vệ tinh…Ảnh có thể ảnh màu hoặc trắng đen, chất lượng ảnh phụ thuộc vào thiết bị thu nhận hình ảnh - Tiền xử lý (Image Processing): Sau ảnh được thu vào được xử lý để chất lượng ảnh tốt lên qua việc điều chỉnh độ chiếu sáng, hiệu chỉnh giá trị độ sáng giữa nền đối tượng, giảm nhỏ thành phần nhiễu, điều chỉnh bọ lọc khuếch đại - Phân đoạn (Segmentation): tách ảnh đầu vào thành các vùng đói tượng khác - Biểu diễn ảnh (Image Representation): Đầu ảnh sau phân đoạn chứa các điểm ảnh của vùng ảnh (ảnh phân đoạn) cộng với mã liên kết với các vùng lận cận Các số liệu được biến đởi thành các dạng thích hợp cho việc xử lý tiếp theo máy tính, sau ảnh được chọn các tích chất để thể hay cịn gọi trích chọn đặc trưng (Feature Selection) gắn với việc tách các đặc tính của ảnh dạng các thông tin định lượng hoặc làm sở để phân biệt lớp đối tượng với đối tượng khác phạm vi ảnh nhận được - Nhận dạng nội suy ảnh (Image Recognition and Interpretation): nhận dạng quá trình xác định ảnh cách so sánh với mẫu chuẩn được chọn hoặc lưu từ trước Nội suy phán đoán ảnh theo ý nghĩa sở nhận dạng Các đối tượng nhận dạng phổ biến được áp dụng khoa học công nghệ: nhận dạng ký tự( chữ viết tay, chữ in, chữ ký điện tử), nhận dạng văn bản, nhận dạng hình ảnh ( vân tay, mặt người, mã vạch, ) - Cơ sở tri thức (Knowledge Base): Một đối tượng khá phức tạp về đường nét, độ sáng tối, dung lượng điểm ảnh, môi trường để thu ảnh phong phú kéo theo nhiễu Trong nhiều khâu xử lý phân tích ảnh cần đơn giản hóa các phương pháp toán học đảm bảo tiện lợi cho xử lý giống quy trình tiếp nhận xử lý ảnh theo cách của người, ở các sở tri thức được phát huy - Mô tả phát huy: Ảnh sau được sớ hóa được chủn sang khu vực lưu trữ phục vụ cho các công đoạn tiếp theo Nếu lưu trữ trực tiếp từ ảnh thô thì dung lượng lưu trữ rất lớn, vì vậy cần mô tả, biểu diễn cho dung lượng lưu trữ thấp nhất, để tiết kiệm nhớ tiết kiệm thời gian làm việc c Các kiểu ảnh Matlab • Ảnh được định chỉ số (Indexed Images) Một ảnh chỉ số bao gồm ma trận dữ liệu X ma trận đồ màu map Ma trận dữ liệu có thể có kiểu thuộc lớp uint8, uint16 hoặc kiểu double Ma trận đồ màu mảng mx3 kiểu double bao gồm các giá trị dấu phẩy động nằm giữa Mỗi hàng của đồ chỉ các giá trị red, green blue của màu đơn Một ảnh chỉ số sử dụng ánh xạ trực tiếp giữa giá trị của pixel ảnh tới giá trị đồ màu Màu sắc của pixel ảnh được tính toán cách sử dụng giá trị tương ứng của X ánh xạ tới giá trị chỉ số của map Giá trị chỉ hàng đầu tiên, giá trị chỉ hàng thứ hai đồ màu … Một đồ màu thường được chứa với ảnh chỉ số được tự động nạp với ảnh sử dụng hàm imread để đọc ảnh Tuy nhiên, không bị giới hạn sử dụng đồ màu mặc định, có thể sử dụng bất kì đồ màu • Ảnh cường độ (Intensity Images) Một ảnh cường độ ma trận dữ liệu ảnh I mà giá trị của đại diện cho cường độ sớ vùng của ảnh Matlab chứa ảnh cường độ ma trận đơn, với phần tử của ma trận tương ứng với pixel của ảnh Ma trận có thể thuộc lớp double, uint8 hay uint16 Trong ảnh cường độ hiếm được lưu với đồ màu, Matlab sử dụng đồ màu để hiển thị chúng Những phần tử ma trận cường độ đại diện cho các cường độ khác hoặc độ xám Những điểm có cường độ thường được đại diện màu đen cường độ 1,255 hoặc 65535 thường đại diện cho cường độ cao nhất hay màu trắng • Ảnh nhị phân (Binary Images) Trong ảnh nhị phân, pixel chỉ có thể chứa hai giá trị nhị phân hoặc Hai giá trị tương ứng với bật hoặc tắt (on hoặc off) Một ảnh nhị phân được lưu trữ mảng logic của • Ảnh RGB (RGB Images) Một ảnh RGB – thường được gọi true-color, được lưu trữ Matlab dạng mảng dữ liệu có kích thước chiều mxnx3 định nghĩa các giá trị màu red, green blue cho pixel riêng biệt Màu của pixel được quyết định bởi kết hợp giữa các giá trị R, G, B (Red, Green, Blue) được lưu trữ mặt phẳng màu tại vị trí của pixel Định dạng file đồ hoạ lưu trữ ảnh RGB giống ảnh 24 bits R, G, B chiếm tương ứng bit Điều cho phép nhận được 16 triệu màu khác Một mảng RGB có thể thuộc lớp double, uint8 hoặc uint16 Trong mảng RGB thuộc lớp double, thành phần màu có giá trị giữa Một pixel mà thành phần màu của (0, 0, 0) được hiển thị với màu đen pixel mà thành phần màu (1, 1, ) được hiển thị với màu trắng Ba thành phần màu của pixel được lưu trữ với chiều thứ của mảng dữ liệu Chẳng hạn, giá trị màu R, G, B của pixel (10, 5) được lưu trữ RGB(10, 5, 1), RGB(10, 5, 2) RGB(10, 5, 3) tương ứng Để tính toán màu sắc của pixel tại hàng cột chẳng hạn, ta nhìn vào ba giá trị được lưu trữ (2, 3, 1:3) Giả sử (2, 3, 1) chứa giá trị 0.5176; (2, 3, 2) chứa giá trị 0.1608 (2, 3, 3) chứa giá trị 0.0627 thì màu sắc của pixel tại (2, 3) (0.5176, 0.1608, 0.0627) 1.3 Các hàm xử lý ảnh Matlab a Đọc ghi dữ liệu • Đọc ảnh đồ hoạ – Hàm imread đọc ảnh bất kỳ với các định dạng được hỗ trợ như: bmp, gif, jpeg, tiff, Ví dụ, đoạn mã sau đọc ảnh RGB vào không gian làm việc của Matlab lưu biến RGB RGB = imread(‘football.jpg’); • Đọc nhiều ảnh từ file đồ hoạ – Matlab trợ giúp số định dạng file đồ hoạ chẳng hạn như: HDF TIFF, chúng chứa nhiều ảnh Theo mặc định, imread chỉ trợ giúp ảnh đầu tiên file Để nhập thêm các ảnh từ file, sử dụng cú pháp được trợ giúp bởi định dạng file Ví dụ sau đọc chuỗi 27 ảnh từ file TIFF lưu những ảnh mảng chiều Ta có thể sử dụng hàm iminfo để xem ảnh được lưu trữ file: Mri = unit8(zero(128,128,1,27)); For frame = 1:27 [mri(:,:,:,frame),map] = imread(‘mri.tif,frame); End – Khi file chứa nhiều ảnh theo số kiểu nhất định chẳng hạn theo thứ tự thời gian, ta có thể lưu ảnh Matlab dạng mảng chiều Tất các ảnh phải có kích thước • Ghi ảnh đồ hoạ – Hàm imwrite ghi ảnh tới file đồ hoạ các định dạng được trợ giúp Cấu trúc nhất của imwrite yêu cầu biến ảnh tên file Nếu ta gộp phần mở rộng tên file, Matlab nhận định dạng mong ḿn từ 10 149 - Bước 3: Ta nhấn I Agree bảng sau lên - Bước 4: Bảng tiếp theo lên ta nhấn Next 150 - Bước 5: Bảng tiếp theo lên ta chọn đường dẫn đến nơi chứa thư viện ZBAR - Bước 6: Ta nhấn Install để bắt đầu cài đặt giải nén thư viện 151 - Bước 7: Sau cài đặt xong thì hiển thị hình - Bước 8: Ta nhấn Next nhấn Finish để kết thúc cài đặt thư viện ZBAR 152 • Lưu ý: Nếu máy tính của bạn Win 32 thì không cần làm theo từ bước đến bước 11, cịn nếu máy tính của bạn Win 64 thì phải làm theo từ bước đến bước 11 để có thể sử dụng được thư viện ZBAR máy - Bước 9: Ta tải file libzbar64-0.lib theo link về máy lưu vào thư mục lib của thư viện ZBAR theo đường dẫn mà bạn cài đặt thư viện ZBAR https://github.com/dani4/ZBarWin64/raw/master/lib/libzbar64-0.lib - Bước 10: Ta tải file libzbar64-0.dll theo link về máy lưu vào thư mục bin của thư viện ZBAR theo đường dẫn mà bạn cài đặt thư viện ZBAR https://github.com/dani4/ZBarWin64/raw/master/lib/libzbar64-0.dll 153 - Bước 11: Ta tải file libiconv.dll theo link về máy lưu vào thư mục bin của thư viện ZBAR theo đường dẫn mà bạn cài đặt thư viện ZBAR https://github.com/dani4/ZBarWin64/raw/master/zbar/libiconv/dll_x 64/libiconv.dll 154 - Bước 12: Ta tiến hành thêm đường dẫn cho thư viện ZBAR vào chương trình C++ cần sử dụng + Click chuột phải vào tên Project bảng Solution Explore chọn Property để mở cửa sổ Project Property + Chuyển Platform sang x64 155 + Chọn mục VC++ Dictionaries thêm đường dẫn đến thư mục include thư mục lib của thư viện ZBAR vào hình 156 + Ta chuyển qua mục Linker để thêm tên thư viện ZBAR có thể truy cập từ ứng dụng 157 Vậy cài đặt thành công thư viện ZBAR cho chương trình C++ Cài đặt WinForm cho ngôn ngữ C++ - Bước 1: Ta mở Visual Studio Community 2019 chọn vào tab Extensions - Bước 2: Ta chọn vào Manage Extensions tìm kiếm ở ô Search: C++/CLR Windows Forms for Visual Studio 2019 158 + Sau ta tiến hành cài đặt extension khởi động lại máy - Bước 3: Kiểm tra xem Extensions được cài hay chưa cách tạo project tìm xem có mục CLR Empty Project (.NET Framework) hay khơng, nếu khơng có thì phải làm lại từ bước - Bước 4: Sau tạo xong project, ta click chuột phải vào tên Project bảng Solution Explore chọn Property để mở cửa sổ Project Property 159 - Bước 5: Ta chuyển qua mục Linker chọn vào mục System sửa trường SubSystem thành Windows (/SUBSYSTEM:WINDOWS) - Bước 6: Vẫn mục Linker ta chuyển sang mục Advance sửa trương Entry Point thành main 160 - Bước 7: Ta tạo Form cho chương trình cách chọn vào tab Project chọn Add New Item 161 - Bước 8: Ta chọn tiếp vào mục UI chọn vào Windows Form, ta đặt tên cho form nhấn Add - Bước 9: Ta thêm đoạn câu lệnh sau vào chương trình (chương trình có tên Form với cpp) using namespace System; using namespace System::Windows::Forms; [STAThread]//leave this as is void main(array^ args) { Application::EnableVisualStyles(); Application::SetCompatibleTextRenderingDefault(false); WinformC::MyForm form; Application::Run(% form); 162 } - Bước 10: Ta lưu chương trình lại thoát vào lại Visual Studio mở lại chương trình để lên bảng WindowForm 163

Ngày đăng: 02/09/2022, 08:09

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

Tài liệu liên quan