matlab 色彩模型,常见色彩模型的相互转换(基于MATLAB).doc
學號2013-2014學年第二學期學號
圖 像 通 信 課 程 設 計 報 告
設計題目:圖像的各種顏色空間轉換
摘 要
所謂三基色原理,是指自然界常見的各種顏色光都可由紅、綠、藍三種色光按照不同比例相配而成。同樣,絕大多數顏色也可以分解成紅、綠、藍三種色光。這就是色度學中的最基本的原理。彩色模型的用途是在某些標準下用通常課接受的方式簡化彩色規范。常常涉及到用幾種不同的彩色空間表示圖形和圖像的顏色,以應對不同的場合和應用。因此,在數字圖像的生成、存儲、處理及顯示時,對應不同的彩色空間,需要作不同的處理和轉換。現在主要的彩色模型有RGB模型、CMY模型、YUV模型、YIQ模型、YcbCr模型、HSI模型等。本設計主要使用MATLAB編程的方法,實現RGB與其余四種模型之間的互化。即使用不同的色彩模型表示同一圖形或圖像。通過轉換實現色彩模型的變換之后,可以讓同一幅圖像以各種模式在全球范圍內流通,所以本設計具有一定的實際意義。一般的圖像原始都為RGB—加色混合色彩模型,它與剩下的幾個色彩模型之間存在著函數對應關系,通過矩陣運算改變模型的參數就可以實現不同色彩模型之間的相互轉換。例如CMY—減色混合色彩模型,就是利用青色、深紅色、黃色這三種彩色按照一定比例來產生想要的彩色,CMY是RGB三基色的補色,它與RGB存在如下關系: CMY=111-RGB,使用MATLAB編程時,讀入三個通道的數值,按照對應關系進行矩陣變換就可以轉換成CMY色彩模型。其他色彩模型轉換原理與此相似。
關鍵詞:MATLAB,RGB、YUV、YIQ、YCbCr、HSI、色彩模型一、設計任務、目的和要求任務:實現RGB模型、CMY模型、YUV模型、YIQ模型、YcbCr模型、HSI模型這幾種不同色彩模型之間的相互轉換要求:最終結果用圖像顯示
二、總體方案設計系統運行環境:WINDOWS 7操作系統
編程軟件平臺:MATLAB2012b
編碼算法原理:將原圖的三基色數值讀入,根據不同色彩模型之間的相互關系,通過矩陣運算改變不同的亮度和色度等信息來實現色彩模型的轉換,然后將變換后的圖像導出
流程圖:開始
獲取R、G、B三通道分量
進行矩陣變換得到圖形
進行反變換得到反變換圖形
將所得圖形與原始圖形比較
結束
三、設計實現
1、RGB模型和CMY模型的互化變換公式:CMY=111-RGBclc;clear;close;X=imread('1.jpg');%讀取原始圖形Image = im2double(X); %歸一化處理subplot(131),imshow(Image),title('原圖');%讀取圖像的RGB分量r = Image(:, :, 1); g = Image(:, :, 2); b = Image(:, :, 3);
%進行RGB到CMY的變換C=1-r;M=1-g;Y=1-b;CMY = cat(3, C, M, Y); subplot(132),imshow(CMY),title('RGB轉CMY');%進行CMY到RGB的反變換r1=1-C;g1=1-M;b1=1-Y;rgb1 = cat(3, r1, g1, b1); subplot(133),imshow(rgb1),title('CMY轉RGB');%數值分析反變換后和原圖的差別x=rgb1-Image;disp(x);
2、RGB模型和YUV色彩模型的互化變換公式:YUV=RGB
clear all;close all;clc;%清除內存空間信息,以便程序運行img=imread('1.jpg'); %讀取原始圖形img=im2double(img);%將圖像映射到[0,1]區間;[m,n,dim]=size(img);%獲得原圖像長、寬、維數的數據subplot(131),imshow(img),title('原圖');%%圖像的RGBR=img(:,:,1);G=img(:,:,2);B=img(:,:,3);
%%RGB2YUVY=zeros(m,n); %亮度I=zeros(m,n); %彩度V=zeros(m,n); %濃度%定義乘法矩陣matrix=[0.299 0.587 0.114; -0.147 -0.298 0.436; 0.615 -0.515 -0.100];
%用for循環實現圖像中每一個點的矩陣變換,即實現模型變換 for i=1:m for j=1:n tmp=matrix*[R(i,j) G(i,j) B(i,j)]'; Y(i,j)=tm
總結
以上是生活随笔為你收集整理的matlab 色彩模型,常见色彩模型的相互转换(基于MATLAB).doc的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 雅虎将于年底前裁员20%以上 但会为员工
- 下一篇: firl 函数 matlab,经典mat