Chuyển đổi ảnh Màu RGB Thành ảnh Xám (grayscale)
Có thể bạn quan tâm
(cập nhật ngày 13/05/2013)
Ảnh gốc ban đầu là ảnh màu RGB có giá trị màu của mỗi kênh nằm trong đoạn [0, 255]. Bài viết này hướng dẫn cách chuyển ảnh màu thành ảnh xám (grayscale) – chỉ còn 1 kênh màu gray – có giá trị màu nằm trong đoạn [0, 255].
Chuẩn bị
- MS Visual Studio 2010, C#
- EmguCV 2.4.2
Thực hiện
Add reference các file Emgu.CV.dll, Emgu.CV.UI.dll, Emgu.Util.dll.
Khai báo trong code
using Emgu.CV; using Emgu.CV.Structure; using Emgu.Util;
Để chuyển từ ảnh màu sang ảnh xám, ta thực hiện theo công thức sau
Độ sáng điểm ảnh = Red * 0.1140 + Green * 0.5870 + Blue * 0.2989
Các hệ số trên có thể được làm tròn tương ứng là R 0.11 – G 0.59 – B 0.3
Hàm tGrayScale dưới đây có tham số truyền vào là ảnh màu RGB, trả về ảnh xám.
public Image<Gray, Byte> tGrayScale(Image<Bgr, Byte> image) { Image<Gray, Byte> GrayImage = new Image<Gray, Byte>(image.Width, image.Height); Double color; for (int r = 0; r < GrayImage.Height; r++) { for (int c = 0; c < GrayImage.Width; c++) { color = image.Data[r, c, 0] * 0.1140 + image.Data[r, c, 1] * 0.5870 + image.Data[r, c, 2] * 0.2989; GrayImage.Data[r, c, 0] = (Byte)Math.Round(color, 0); } } return GrayImage; }Trong đoạn mã trên, ta truy xuất đến các điểm ảnh (pixel) như sau:
image.Data[r, c, 0] : pixel tại vị trí hàng r, cột c, kênh màu red (0) image.Data[r, c, 1] : pixel tại vị trí hàng r, cột c, kênh màu green (1) image.Data[r, c, 2] : pixel tại vị trí hàng r, cột c, kênh màu blue (2)
GrayImage.Data[r, c, 0] : pixel của ảnh xám tại vị trí hàng r, cột c, chỉ có 1 kênh màu gray (0)
Do nhân với các hệ số có dấu chấm động, nên ta dùng hàm làm tròn (Math.Round() ), sau đó ép kiểu về Byte – để có được giá trị độ sáng nằm trong đoạn [0, 255].
Share this:
- X
Related
Từ khóa » Chuyển ảnh Rgb Sang Gray
-
Chuyển ảnh Màu RGB Sang ảnh Mức Xám Grayscale Dùng Phương ...
-
Từ RGB Sang Đa Mức Xám (Grayscale) | Trần Tri's Blog
-
Chuyển đổi ảnh Màu RGB Thành ảnh Xám (grayscale) - Truly Easy
-
3DVisionLab - Có 3 Cách để Chuyển RGB Sang Grayscale - فيسبوك
-
Trực Tuyến RGB Đến GRAY, Công Cụ Chuyển đổi Trực Tuyến ...
-
Xử Lý ảnh Với OpenCV - Tut 2: Chuyển đổi ảnh Màu
-
Open CV Xử Lý ảnh Bài 1 Xử Lý Màu, Chuyển Hệ Màu - Viblo
-
Làm Thế Nào để Chuyển đổi Hình ảnh RGB (3 Kênh) Sang Thang độ ...
-
Chuyển ảnh Chỉ Có Channel Gray Sang Rgb???
-
Cách Biến đổi Các điểm ảnh Màu Thành điểm ảnh Trắng?
-
Bài 5: Giới Thiệu Về Xử Lý ảnh | Deep Learning Cơ Bản
-
Matlab Trong Xử Lý ảnh: Cơ Bản ảnh Grayscale (part 1) | Vi Mạch
-
Cách Chuyển Màu RGB Sang CMYK Trong Photoshop Dễ Dàng
-
Chuyển Đổi Hệ Màu Trong OpenCV — Computer Vision - STDIO