EmguCV – OpenCV cho .NET – Một Số Thao Tác Xử Lý Ảnh Cơ Bản – I — Computer Vision

Mục lục bài viết

Giới thiệu

EmguCV là một thư viện xử lý hình ảnh, thị giác máy tính dành riêng cho ngôn ngữ C#. EmguCV đã xây dựng những control xử lý hình ảnh.

Bài viết này sẽ giới thiệu control xử lý hình ảnh của EmguCV, lý do tại sao nên sử dụng nó thay vì tự xây dựng và một số thao tác xử lý ảnh cơ bản với thư viện EmguCV. 

[external_link_head]

Imagebox

Toolbox được thư viện EmguCV xây dựng nhằm xử lý hình ảnh. Có thể tự xây dựng cho mình một tool để xử lý hình ảnh riêng, nên sử dụng ImageBox trong EmguCV vì các lý do sau:

  • ImageBox là một control hiệu suất cao để hiển thị hình ảnh. Bất cứ khi nào có thể, nó sẽ hiển thị một Bitmap với các đối tượng hình ảnh. Nó không cần một bản sao lưu trữ nên tốc độ hiển thị ảnh rất nhanh.
  • Có thể kiểm tra các giá trị điểm ảnh, tỷ lệ khung hình, màu sắc, các thiết lập hình ảnh,… khi hình ảnh được hiển thị.
  • Thao tác đơn giản với hộp thoại Option sẽ hiện ra chỉ với một cái click mouse.
  • Sử dụng nhanh chóng với bất kỳ project nào muốn có.

Thêm các control vào Toolbox

Để biết cách thêm các control của EmguCV vào Toolbox, có thể tham khảo bài viết:

  • EmguCV – OpenCV cho .NET – Giới Thiệu và Cách Tích Hợp vào .NET
EmguCV - OpenCV cho .NET - Một Số Thao Tác Xử Lý Ảnh Cơ Bản - I — Computer Vision

Thêm control ImageBox vào trong Form Design để có thể thao tác xử lý ảnh.

Xem thêm  HƯỚNG DẪN CÁCH UP FILE LÊN GOOGLE DRIVE

Một số khái niệm, thuật ngữ trong EmguCV

Image color

Không gian màu của hình ảnh. Trong EmguCV sử dụng nhiều không gian màu như:

[external_link offset=1]
  • Gray (Trắng đen)
  • Bgr (Blue Green Red)
  • Bgra (Blue Green Red Alpha)

Không gian màu là một mô hình toán học để mô tả các màu sắc trong thực được biểu diễn dưới dạng số học.

 Ví dụ

Không gian màu BGR:

  • Ý tưởng chính là kết hợp 3 màu sắc cơ bản là đỏ (Red, R), xanh lục (Green, G), xanh lơ (Blue, B) để mô tả ra các màu sắc khác.
  • Nếu hình ảnh được mã hóa bằng 24 bit thì có 8 bit lần lượt cho cả 3 kênh B-G-R. Mỗi kênh nhận một giá trị từ 0-255. Như vậy có 255x255x255 = 1.66 triệu màu.
  • Màu trắng có giá trị (255, 255, 255) và màu đen có giá trị (0, 0, 0)
EmguCV - OpenCV cho .NET - Một Số Thao Tác Xử Lý Ảnh Cơ Bản - I — Computer Vision

Histogram

  • Là biểu đồ nói lên mối quan hệ các giá trị pixel ảnh (điểm ảnh) và tuần suất xuất hiện của chúng. Nhìn vào biểu đồ Histogram có thể biết được một hình ảnh sáng tối thế nào (biểu đồ lệch phía phải thì là thừa sáng và ngược lại).
  • Với control histogramBox có thể hiển thị biểu đồ Histogram của hình ảnh.
EmguCV - OpenCV cho .NET - Một Số Thao Tác Xử Lý Ảnh Cơ Bản - I — Computer Vision

Cấu trúc của một bức ảnh

Một ảnh được lưu trữ trên máy tính là một ma trận điểm ảnh (pixel). Nhờ vào ma trận này mà thư viện EmguCV xây dựng các thao tác về xử lý màu sách của ảnh, phóng to, thu nhỏ,…

Xem thêm  Bỏ túi ngay cách theo dõi Facebook người khác mà không bị phát hiện
EmguCV - OpenCV cho .NET - Một Số Thao Tác Xử Lý Ảnh Cơ Bản - I — Computer Vision
Phân tích

Ở trên có một phần hình ảnh:

  • Có kích thước 4×4 và có Imager Color là Bgr.
  • Ứng với mỗi tọa độ pixel này sẽ có một màu sắc nhất định. Với Image Color là Bgr thì mỗi điểm này có 3 giá trị là Blue-Green-Red. Có thể truy cập nó với phương thức Data.
  • Ví dụ: Tại điểm (3:1) có giá trị màu là (0-0-255) tức là màu đỏ.

Các thao tác xử lý hình ảnh cơ bản

Ở mục ImageBox đã giới thiệu rằng chỉ cần nhấp chuột phải là có thể một hộp thoại Option xử lý hình ảnh với EmguCV. Với các thao tác chỉ việc chọn các thao tác phù hợp với mục đích.

Open file và save file

Lần lượt là các thao tác mở file hình ảnh được chọn và lưu các hình ảnh đã được (hoặc chưa) được xử lý với một thư mục tùy chọn xác định.  

EmguCV - OpenCV cho .NET - Một Số Thao Tác Xử Lý Ảnh Cơ Bản - I — Computer Vision

Trong class Image, function ToBitmap() giúp có thể return một Bitmap Object. Nhờ đó có thể sử dụng một control PictureBox để hiển thị hình ảnh.

Image Property

Right Mouse Click > Property.Chọn thao tác này sẽ xuất hiện một hộp thoại có một một số chức năng sau:

[external_link offset=2]
  • Hiển thị thông số của hình ảnh như Size, Image Color, Image Depth
  • Giá trị BGR tại vị trí trỏ chuột hiện tại
  • Chức năng phóng to hoặc thu nhỏ hình ảnh với một tỉ lệ cho trước
  • Hiển thị Histogram
EmguCV - OpenCV cho .NET - Một Số Thao Tác Xử Lý Ảnh Cơ Bản - I — Computer Vision

Conversion

Right mouse click > Filters > Conversion > Convert<TOtherColor, TOtherDeph>(). Là chức năng dùng để chuyển đổi các không gian màu cho hình ảnh. 

Xem thêm  NCT DREAM 엔시티 드림 'Chewing Gum' MV | Website information advice
EmguCV - OpenCV cho .NET - Một Số Thao Tác Xử Lý Ảnh Cơ Bản - I — Computer Vision

Trong hộp thoại Convert.

EmguCV - OpenCV cho .NET - Một Số Thao Tác Xử Lý Ảnh Cơ Bản - I — Computer Vision

Với thành phần code trong hộp thoại Image Property, có thể thấy phương thức xử lý ảnh. Ví dụ ở trên xử lý từ một ảnh có không gian màu là Bgr sang Gray. Trong EmguCV để chuyển không gian màu thì sử dụng  phương thức Convert.

Zoom

Phóng to hoặc thu nhỏ hình ảnh nhờ vào chức năng Zoom trong Option hoặc chức năng Zoom trong hộp thoại Image Property.

EmguCV - OpenCV cho .NET - Một Số Thao Tác Xử Lý Ảnh Cơ Bản - I — Computer Vision

Với chức năng Zoom trong hộp thoại Option.Có 3 chức năng:

  • Zoom In: Phóng to hình ảnh hiển thị hiện tại lên x2 lần.
  • Zoom Out: Thu nhỏ hình ảnh hiển thị hiện tại xuống x2 lần.
  • Un-Zoom: Đưa hình ảnh hiển thị về kích thước ban đầu.

Ngoài ra có thể sử dụng Wheel Mouse để phóng to hoặc thu nhỏ hình ảnh hiển thị hiện tại.

Bài chung series

  • EmguCV – OpenCV cho .NET – Giới Thiệu và Cách Tích Hợp vào .NET
  • EmguCV – OpenCV cho .NET – Một Số Thao Tác Xử Lý Ảnh Cơ Bản – I
  • EmguCV – OpenCV cho .NET – Một Số Thao Tác Xử Lý Ảnh Cơ Bản – II
[external_footer]
Rate this post

Bài viết liên quan

Để lại ý kiến của bạn:

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *