Đồ họa của Tech Insider cho thấy những lục địa sẽ hợp nhất thành một dải đất duy nhất trong vòng 250 triệu năm tới . Bạn đang đọc: Các...
Xử Lý Ảnh Matlab – Thay Đổi Ảnh Màu Trong Matlab
Biến đổi ảnh màu thành ảnh đen trắng, đỏ, xanh,.. trong Matlab
Trong bài viết hôm nay tôi và bạn cùng nhau học cách biến đổi ảnh một hình ảnh màu thành 3 loại ảnh đó là Red, Green, Blue cũng như học cách lưu hình ảnh lại thành hình ảnh mới. Bạn nên xem lại lại bài cách đọc hình ảnh trước nếu bạn quên hoặc chưa xem. Vì trong bài viết này sẽ có một phần áp dụng trong bài viết đó.
Đầu tiên tất cả chúng ta cùng học một vài câu lệnh trong Matlab tương hỗ việc giải quyết và xử lý hình ảnh ( Image ). Các câu lện nào mà tôi và bạn đã học ở những bài trước rồi thì tôi xin được phép không nhắc lại để tránh mất thời hạn của bạn .
1. Tách ảnh màu thành 3 loại ảnh (kênh)
%Đọc File [tenFileAnh, duongDanAnh] = uigetfile({'*.*'}); Image = imread(fullfile(duongDanAnh, tenFileAnh)); %Lấy Kênh Màu imageRed = Image(:,:,1); imageGreen = Image(:,:,2); imageBlue = Image(:,:,3); %Kết Qủa Image resultRed = cat(3,imageRed, imageGreen*0, imageBlue*0); resultGreen = cat(3,imageRed*0, imageGreen, imageBlue*0); resultBlue = cat(3,imageRed*0, imageGreen*0, imageBlue);
Trong đó:
Bạn đang đọc: Xử Lý Ảnh Matlab – Thay Đổi Ảnh Màu Trong Matlab
- cat(): Nối 3 kênh lại với nhau. Kênh nào mà nhân với 0 (*0) thì kênh đó sẽ không được hiện thị. Ví dụ cat(3,imageRed, imageGreen*0, imageBlue*0); thì kết quả sẽ được 1 ảnh màu Red (đỏ).
- resultRed, resultGreen, resultBlue là kết quả của bức ảnh theo 3 kênh R,G,B
2. Tách ảnh màu thành ảnh xám
anhXam = rgb2gray(hinhAnh)
Trong đó : rgb2gray ( ) Biến đổi ảnh màu thành ảnh xám .
3. Lưu hình ảnh
[tenFile, duongDan] = uiputfile({'*.jpg','JPEG Files(*.jpg)';... '*.bmp','Bitmap Files(*.bmp)';'*.gif','GIF Files(*.gif)';... '*.tif','TIFF Files(*.tif)';... '*.*','all image file'},'Luu anh da chon!','anhkq/'); imwrite(hinhAnh, [duongDan,tenFile]);
Trong đó : imwrite ( ) Lệnh này giúp bạn ghi hình ảnh. Có nghĩa là khi bạn sử lý xong bức ảnh ( Biến đổi màu, đổi khác kích cỡ, … ) xong rồi thì lệnh này được cho phép bạn lưu hình ảnh đó lại thành định dạng nào đó bạn muốn .
4. Bài tập áp dụng
Oke như vậy tôi và bạn đã cùng nhau khám phá một số ít câu lệnh giúp bạn chuyển đổi một bức ảnh màu thành 3 loại ảnh red, green, blue và ảnh xám. Cũng như hướng dẫn bạn cách lưu ảnh lại theo định dạng bạn muốn .
Bây giờ để bạn hiểu rõ hơn tôi và bạn cùng nhau giải một bài toán dưới đây để hiểu rõ yếu tố tất cả chúng ta đã học .
Chú thích: Tôi sẽ hướng dẫn bạn ở mức cơ bản nhất để bạn hiểu bởi vậy tôi sẽ không đi quá nâng cao bạn sẽ không hiểu được.
Nhiệm vụ chúng ta đó là khi nhấn vào Chon Hinh Anh (pushbutton1) thì hình ảnh đó sẽ được hiện thị vào các axes với các kiểu hình ảnh màu như hình ảnh. Tiếp khi có ảnh rồi ta sẽ tiến hành lưu hình đó lại.
Oke ta triển khai xử lý bài toán này. Bạn thực thi mở file. m của trương trình nên và làm như sau
1. pushbutton1 (String: Chon Hinh Anh)
%Bien toan cuc global resultRed %Tao mot dialog box [tenFileAnh,duongDanAnh] = uigetfile({'*.*'}); if ~isequal(tenFileAnh,0) Info = imfinfo(fullfile(duongDanAnh,tenFileAnh)); if Info.BitDepth == 24 Image = imread(fullfile(duongDanAnh, tenFileAnh)); axes(handles.axes5) imshow(Image) imageRed = Image(:,:,1); imageGreen = Image(:,:,2); imageBlue = Image(:,:,3); % Anh Do resultRed = cat(3,imageRed, imageGreen*0, imageBlue*0); axes(handles.axes1) imshow(resultRed) % Anh Green resultGreen = cat(3,imageRed*0, imageGreen, imageBlue*0); axes(handles.axes2) imshow(resultGreen) % Anh Blue resultBlue = cat(3,imageRed*0, imageGreen*0, imageBlue); axes(handles.axes3) imshow(resultBlue) % Anh Xam' anhXam = rgb2gray(Image) axes(handles.axes6) imshow(anhXam) else msgbox('Hay chon anh RGB'); return end else return end
Trong đó :
- isequal kiểm tra xem có phải là hình ảnh không
- 24 là loại ảnh màu
- imshow hiện thị ảnh
Để biết ảnh màu hay không thì bạn nhìn vào đây
2. pushbutton2 (String: Luu Hinh Anh)
Gỉa sử rằng bạn muốn lưu ảnh màu Red ( Đỏ ) thì tại pushbutton1 bạn cần phải khai báo một biến toàn cục để lưu hình ảnh đỏ. Rồi trong pushbutton2 ta mới lấy ảnh đó để lưu lại được .
global resultRed [filename,pathname]=uiputfile({'*.jpg','JPEG Files(*.jpg)';... '*.bmp','Bitmap Files(*.bmp)';'*.gif','GIF Files(*.gif)';... '*.tif','TIFF Files(*.tif)';... '*.*','all image file'},'Luu anh da chon!','anhkq/'); imwrite(resultRed,[pathname,filename]);
Oke bạn thử chạy trương trình nên xem thế nào .
Như vậy là chúng ta đã hoàn thành xong bài tập trên rồi đó. Như đã nói ở đầu thì tôi sẽ không giải thích lại các đoạn code mà ta đã học đỡ mất nhiều thời gian của bạn. Nếu bạn không hiểu đoạn nào xin vui lòng xem lại các bài viết trước của tôi cũng như bình luận phía dưới để tôi giải thích cho bạn.
Dưới đây là link tải bài tập tương tự như như bài tập trên nhưng sẽ có một chút ít nâng cao hơn. Nếu bạn cần thì bạn hoàn toàn có thể tải về và dùng phần mền Matlab chạy trương trình nên bằng cách
guide MODUL_1
Bạn hoàn toàn có thể xem code trong viết gì. Thực ra nó cũng không khó lắm đâu nếu bạn chịu khó xem .
Tổng Kết
Trên đây tôi và bạn đã học xong cách chỉnh sửa đổi khác bức ảnh thành ảnh màu khác. Hi vọng rằng bạn sẽ thành thạo những câu lệnh trên. Chúc bạn thành công xuất sắc !
Xem thêm: Hình ảnh trái đất đẹp nhất
Source: https://vh2.com.vn
Category : Trái Đất