程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> 合成彩色圖像-已知一副彩色圖像,求出RGB三通道的灰度值,在對其做變換後,怎麼將RGB三通道恢復為彩色圖像

合成彩色圖像-已知一副彩色圖像,求出RGB三通道的灰度值,在對其做變換後,怎麼將RGB三通道恢復為彩色圖像

編輯:編程綜合問答
已知一副彩色圖像,求出RGB三通道的灰度值,在對其做變換後,怎麼將RGB三通道恢復為彩色圖像

求大神幫忙,已知一副彩色圖像,先求出RGB各灰度值,然後各灰度值各加一定的數值,怎麼合成一副彩色圖像。
如果有matlab其它方法可以實現將一副彩色圖像的各灰度值加一定的數值,再合成一副圖像也可以。

 clear;
clc;
f=imread('fruit.jpg');
[m,n,p]=size(f);   %對於二維數組來說,它的size是指它的行數和列數;三維數組是指它的各個維的維度,可以理解為m行,n列和p層,即一共有m*n*p個元素
a=zeros(1,256);  %a為一個1行,256列的全0矩陣
b=zeros(1,256);
c=zeros(1,256);

for i=1:m     %從行開始 
    for j=1:n  %每一行的列
        a(f(i,j,1)+1)=a(f(i,j,1)+1)+1;  %f(i,j,1)是紅色通道的值,這個值有0-255的取值,a數組正好是容量256的數組,數組的下標范圍是1開始的,所以要加1
    end
end
for i=1:m
    for j=1:n
        b(f(i,j,2)+1)=b(f(i,j,2)+1)+1;%G通道
    end
end

for i=1:m
    for j=1:n
        c(f(i,j,3)+1)=c(f(i,j,3)+1)+1;%B通道
    end
end
%各灰度分量加20;
for k=1:256
    a(k)=a(k)+20;
    b(k)=b(k)+20;
    c(k)=c(k)+20;
end

怎麼合成?

最佳回答:


f=imread('fruit.jpg');如果你讀入的圖像就是三個通道的,那個f(:,:,1)、f(:,:,2)、f(:,:,3)就是三個通道的數據啊,f(:,:,1)=f(:,:,1)+10,就可以了。
這樣f就是彩色圖片,不知道是不是你要的回答?很多時候,灰度值需要限幅的

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved