導航:首頁 > 源碼編譯 > 彩色轉灰度演算法

彩色轉灰度演算法

發布時間:2023-06-15 07:03:05

『壹』 求個大神幫寫一個C語言RGB565轉換為灰度圖像的演算法

最多隻能給你寫個rgb565像素轉灰度像素的。
不知道你圖像是什麼格式,如何保存,以及各種其他什麼什麼信息。
所以圖像那邊的循環就你自己去搞定了,我只給你搞單個像素

#define rgb565togray(x) \
(unsigned char) ( \
((val) >> 11) * 0.3 + \
(((val) >> 5) & 0x3f) * 0.59 + \
((val) & 0x1f) * 0.11 \
)

『貳』 25%的灰度RGB是多少

25%的灰度RGB(25,25,25)。

灰度就是沒有色彩,RGB色彩分量全部相等。如果是一個二值灰度圖像,它的像素值只能為0或1,我們說它的灰度級為2。用個例子來說明吧:一個256級灰度的圖像,如果RGB三個量相同時,如:RGB(100,100,100)就代表灰度為100,RGB(50,50,50)代表灰度為50。

彩色圖像的灰度其實在轉化為黑白圖像後的像素值(是一種廣義的提法),轉化的方法看應用的領域而定,一般按加權的方法轉換,R, G,B 的比一般為3:6:1。

任何顏色都由紅、綠、藍三基色組成,假如原來某點的顏色為RGB(R,G,B),那麼,可以通過下面幾種方法,將其轉換為灰度:

1、浮點演算法:Gray=R*0.3+G*0.59+B*0.11

2、整數方法:Gray=(R*30+G*59+B*11)/100

3、移位方法:Gray =(R*77+G*151+B*28)>>8;

4、平均值法:Gray=(R+G+B)/3;

5、僅取綠色:Gray=G;

通過上述任一種方法求得Gray後,將原來的RGB(R,G,B)中的R,G,B統一用Gray替換,形成新的顏色RGB(Gray,Gray,Gray),用它替換原來的RGB(R,G,B)就是灰度圖了。

(2)彩色轉灰度演算法擴展閱讀


RGB格式:

對一種顏色進行編碼的方法統稱為「顏色空間」或「色域」。用最簡單的話說,世界上任何一種顏色的「顏色空間」都可定義成一個固定的數字或變數。

RGB(紅、綠、藍)只是眾多顏色空間的一種。採用這種編碼方法,每種顏色都可用三個變數來表示-紅色綠色以及藍色的強度。記錄及顯示彩色圖像時,RGB是最常見的一種方案。

但是,它缺乏與早期黑白顯示系統的良好兼容性。因此,許多電子電器廠商普遍採用的做法是,將RGB轉換成YUV顏色空間,以維持兼容,再根據需要換回RGB格式,以便在電腦顯示器上顯示彩色圖形。

網頁格式:

由於網頁(WEB)是基於計算機瀏覽器開發的媒體,所以顏色以光學顏色RGB(紅、綠、藍)為主。網頁顏色是以16進制代碼表示,一般格式為#DEFABC (字母範圍從A-F,數字從0-9 );

如黑色,在網頁代碼中便是:#000000(在css編寫中可簡寫為#000)。當顏色代碼為#AABB11時,可以簡寫為#AB1表示,如#135與#113355表示同樣的顏色。

RGB1、RGB4、RGB8都是調色板類型的RGB格式,在描述這些媒體類型的格式細節時,通常會在BITMAPINFOHEADER數據結構後面跟著一個調色板(定義一系列顏色)。它們的圖像數據並不是真正的顏色值,而是當前像素顏色值在調色板中的索引。

以RGB1(2色點陣圖)為例,比如它的調色板中定義的兩種顏色值依次為0x000000(黑色)和0xFFFFFF(白色)…(每個像素用1位表示)表示對應各像素的顏色為:黑黑白白黑白黑白黑白白白。

閱讀全文

與彩色轉灰度演算法相關的資料

熱點內容
單片機最小系統電路設計流程圖 瀏覽:663
steam源碼 瀏覽:29
關於對數的運演算法則及公式 瀏覽:775
明星談如何緩解壓力 瀏覽:141
androidlistview隱藏列 瀏覽:396
plc跑馬燈編程 瀏覽:816
ios開發之網路編程 瀏覽:421
處理照片視頻哪個app好 瀏覽:386
logback壓縮 瀏覽:888
冰箱壓縮機可以用氣割嗎 瀏覽:531
菜鳥如何加密商品信息 瀏覽:315
程序員那麼可愛小說結局 瀏覽:866
zenity命令 瀏覽:570
監禁風暴哪個app有 瀏覽:871
程序員的愛心是什麼 瀏覽:595
java中對字元串排序 瀏覽:296
單片機用數模轉換生成三角波 瀏覽:640
外網怎麼登陸伺服器地址 瀏覽:140
什麼人要懂編譯原理 瀏覽:154
源碼改單 瀏覽:719