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

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ó.
Xem thêm  Cách đổi mật khẩu WiFi trên điện thoại, máy tính mới nhất 2021

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.

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.
Xem thêm  Tải download Teamviewer 9, 10, 11, 12, 13, 14 miễn phí đầy đủ phiên bản
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ỏ,…

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:

Xem thêm  Tên nhân vật game liên minh cực hay, hài hước và độc nhất
[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. 

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.