2009-11-22 123 views
10

Tôi đang cố gắng triển khai thuật toán trong tầm nhìn máy tính và tôi muốn thử nó trên một bộ ảnh. Những bức ảnh đều có màu sắc, nhưng tôi không muốn đối phó với điều đó. Tôi muốn chuyển đổi chúng thành thang độ xám đủ để kiểm tra thuật toán.Làm cách nào để chuyển đổi hình ảnh màu thành màu xám trong MATLAB?

Làm cách nào để chuyển đổi hình ảnh màu thành thang độ xám?

tôi đọc nó với:

x = imread('bla.jpg'); 

Có lập luận tôi có thể thêm vào imread để đọc nó như là màu xám? Có cách nào tôi thay đổi x thành màu xám sau khi đọc không?

Trả lời

24

Sử dụng rgb2gray để cắt màu và độ bão hòa (ví dụ: chuyển đổi thành thang độ xám). Documentation

+2

@Donnie: Tôi đã cập nhật liên kết đến tài liệu mới nhất. – gnovice

+0

@Donnie: Tôi đã cập nhật bản cập nhật cho tài liệu mới nhất. – leMoisela

+2

Họ thực sự cần phải ngừng di chuyển tài liệu. :) – Donnie

8
x = imread('bla.jpg'); 
k = rgb2gray(x); 
figure(1),imshow(k); 
+0

>> k = rgb2gray (im); Chức năng không xác định 'rgb2gray' cho đối số đầu vào của loại 'uint8'. – ntg

1

bạn có thể sử dụng mã này:

im=imread('your image'); 
k=rgb2gray(im); 
imshow(k); 

sử dụng để MATLAB

0

I=imread('yourimage.jpg'); 
p=rgb2gray(I) 
+0

Tôi biết rằng câu trả lời là đơn giản, nhưng câu trả lời chỉ có mã được khuyến khích ở đây. Vui lòng thêm một ngữ cảnh nhỏ, giải thích những gì 'rgb2gray' làm và có thể liên kết đến tài liệu. – horchler

0

Sử dụng imread()rgb2gray() f để có được một hình ảnh tỷ lệ xám.

Ví dụ:

I = imread('input.jpg'); 
J = rgb2gray(I); 
figure, imshow(I), figure, imshow(J); 

Nếu bạn có một hình ảnh màu bản đồ, bạn phải làm như dưới đây:

[X,map] = imread('input.tif'); 
gm = rgb2gray(map); 
imshow(X,gm); 

Thuật toán rgb2gray thực hiện của riêng bạn là:

f(R,G,B) = (0.2989 * R) + (0.5870 * G) + (0.1140 * B) 
Các vấn đề liên quan