Từ RGB Sang Đa Mức Xám (Grayscale) | Trần Tri's Blog
Có thể bạn quan tâm
Trần Tri's Blog
Kết nối công nghê – Theo đuổi đam mê RSS ← [Windows 8] How to share Internet connection with your phone, tablet, other computers, and other devices (aka how to setup hosted network) Hướng dẫn cài android 4.0 trên máy ảo của windowns →Từ RGB sang Đa mức xám (Grayscale)
14 Th9 Đơn vị cơ bản của một bức ảnh là điểm ảnh (pixel), mỗi điểm ảnh có thể được biểu diễn bằng n bytes dưới các hệ màu khác nhau. Việc chuyển đổi giữa các hệ màu thông thường được thực hiện thông qua các phép biến đổi ma trận. Trong bài viết này tôi sẽ giới thiệu phương thức chuyển đổi từ ảnh 24 bits RGB sang ảnh 8bits đa mức xám. Để thực hiện yêu cầu trên, thông thường ta sử dụng một trong những công thức sau đây, áp dụng cho từng điểm ảnh [x, y]: Ix, y = 0.3086 * Redx, y + 0.6094 * Greenx, y + 0.0820 * Bluex, y Ix, y = 0.299 * Redx, y + 0.587 * Greenx, y + 0.114 * Bluex, y Chú ý rằng giá trị mỗi điểm ảnh Ix,y hay còn gọi là cường độ sáng (Luminance Intensity) trong ảnh đa mức xám tính được là tổng trọng số khác nhau của mỗi thành phần màu trong hệ màu RGB. Một trong những lý do của việc này là nếu chúng ta sử dụng cùng trọng số, ví dụ (R + G + B) / 3 thì màu đỏ, màu xanh nước biển hay màu xanh da trời sẽ có cùng mức xám sau khi chuyển đổi. Mặt khác theo khoa học đã chứng minh thì mắt người nhạy cảm hơn với thành phần màu xanh lá cây và màu đỏ so với xanh da trời. Việc triển khai trong C/C++ của công thức trên khá đơn giản như sau với một ảnh có định dạng điểm ảnh liên tục (interleaved color) RGBRGB: for ( i = 0; i < imgSize; i += 3 ) { out[i] = (unsigned char)(0.299*in[i] + 0.587*in[i+1] + 0.114*in[i+2] + 0.5); } Vì việc thực hiện phép nhân trong miền số nguyên thì nhanh hơn rất nhiều trong miền số thực nên công thức trên được viết lại trong miền số nguyên như sau: Ix, y = ( 2 * Redx, y + 5 * Greenx, y + 1 * Bluex, y ) / 8 Cộng với việc thay thế các phép chia và nhân bằng toán tử shift tốc độ của quá trình tính toán sẽ được đẩy lên một cách hiệu quả. Dưới đây là mã nguồn cho quá trình nâng cấp này: int iTmp; for ( i = 0; i < imgSize; i += 3 ) { iTmp = in[i] << 1; iTmp += in[i+1] << 2 + in[i+1]; iTmp += in[i+2]; out[i] = (unsigned char)(iTmp>> 3); } Và hãy cùng ngắm người đẹp lena trong kết quả
Để hiểu sâu hơn về tối ưu và phương pháp ánh xạ giữa các miền số học vui lòng xem thêm các bài viết trong mục kỹ thuật triển khai. Lưu ý: trong thực hành, không phải lúc nào thứ tự của 3 bytes trong 1 điểm ảnh cũng là R – G – B, đôi khi thứ tự này có thể là B – G – R. Binh Nguyen – Bioz Đang tải...
Có liên quan
Bình luận về bài viết nàyĐược đăng bởi trantri2006 trên Tháng Chín 14, 2014 in Image Processing & Computer Vision
← [Windows 8] How to share Internet connection with your phone, tablet, other computers, and other devices (aka how to setup hosted network) Hướng dẫn cài android 4.0 trên máy ảo của windowns →Bình luận về bài viết này Hủy trả lời
- Tìm
-
Bài viết mới
- Privacy Policy for Tuổi học trò
- Privacy Policy for Thánh Troll hỏi xoáy
- Privacy Policy for English Testing
- Privacy Policy for Compass
- Privacy Policy for TOEIC – PART V
Bình luận mới nhất
Thư viện
- Tháng Chín 2018
- Tháng Mười 2014
- Tháng Chín 2014
- Tháng Tám 2014
- Tháng Mười 2013
- Tháng Chín 2013
- Tháng Năm 2013
Chuyên mục
- Android
- C / C++ / MFC
- C# / .Net
- Image Processing & Computer Vision
- Java
- Private
- Relax
- Research & Collection
- Web ASP .net
- Web PHP
Meta
- Tạo tài khoản
- Đăng nhập
- RSS bài viết
- RSS bình luận
- WordPress.com
Tạo một blog miễn phí với WordPress.com.
Entries (RSS) và Comments (RSS)
- Bình luận
- Đăng lại
- Theo dõi Đã theo dõi
-
Trần Tri's Blog Theo dõi ngay - Đã có tài khoản WordPress.com? Đăng nhập.
-
-
-
Trần Tri's Blog - Theo dõi Đã theo dõi
- Đăng ký
- Đăng nhập
- URL rút gọn
- Báo cáo nội dung
- Xem toàn bộ bài viết
- Quản lý theo dõi
- Ẩn menu
-
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 ...
-
Chuyển đổi ảnh Màu RGB Thành ảnh Xám (grayscale)
-
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