圖像處理基礎

圖像處理基礎

在計算機中,按照顏色和灰度的多少可以將圖像分為二值圖像、灰度圖像、索引圖像和真彩色RGB圖像四種基本類型。目前,大多數圖像處理軟件都支持這四種類型的圖像。

(1) 二值圖像:
一幅二值圖像的二維矩陣僅由0、1兩個值構成,“0”代表黑色,“1”代白色。由于每一像素(矩陣中每一元素)取值僅有0、1兩種可能,所以計算機中二值圖像的數據類型通常為1個二進制位。二值圖像通常用于文字、線條圖的掃描識別(OCR)和掩膜圖像的存儲。

2) 灰度圖像:
灰度圖像矩陣元素的取值范圍通常為[0,255]。因此其數據類型一般為8位無符號整數的(int8),這就是人們經常提到的256灰度圖像。“0”表示純黑色,“255”表示純白色,中間的數字從小到大表示由黑到白的過渡色。在某些軟件中,灰度圖像也可以用雙精度數據類型(double)表示,像素的值域為[0,1],0代表黑色,1代表白色,0到1之間的小數表示不同的灰度等級。二值圖像可以看成是灰度圖像的一個特例。

(3) 索引圖像:
索引圖像的文件結構比較復雜,除了存放圖像的二維矩陣外,還包括一個稱之為顏色索引矩陣MAP的二維數組。MAP的大小由存放圖像的矩陣元素值域決定,如矩陣元素值域為[0,255],則MAP矩陣的大小為256Ⅹ3,用MAP=[RGB]表示。MAP中每一行的三個元素分別指定該行對應顏色的紅、綠、藍單色值,MAP中每一行對應圖像矩陣像素的一個灰度值,如某一像素的灰度值為64,則該像素就與MAP中的第64行建立了映射關系,該像素在屏幕上的實際顏色由第64行的[RGB]組合決定。也就是說,圖像在屏幕上顯示時,每一像素的顏色由存放在矩陣中該像素的灰度值作為索引通過檢索顏色索引矩陣MAP得到。索引圖像的數據類型一般為8位無符號整形(int8),相應索引矩陣MAP的大小為256Ⅹ3,因此一般索引圖像只能同時顯示256種顏色,但通過改變索引矩陣,顏色的類型可以調整。索引圖像的數據類型也可采用雙精度浮點型(double)。索引圖像一般用于存放色彩要求比較簡單的圖像,如Windows中色彩構成比較簡單的壁紙多采用索引圖像存放,如果圖像的色彩比較復雜,就要用到RGB真彩色圖像。

(4) RGB彩色圖像:
RGB圖像與索引圖像一樣都可以用來表示彩色圖像。與索引圖像一樣,它分別用紅(R)、綠(G)、藍(B)三原色的組合來表示每個像素的顏色。但與索引圖像不同的是,RGB圖像每一個像素的顏色值(由RGB三原色表示)直接存放在圖像矩陣中,由于每一像素的顏色需由R、G、B三個分量來表示,M、N分別表示圖像的行列數,三個M x N的二維矩陣分別表示各個像素的R、G、B三個顏色分量。RGB圖像的數據類型一般為8位無符號整形,通常用于表示和存放真彩色圖像,當然也可以存放灰度圖像。
數字化圖像數據有兩種存儲方式[6]:位圖存儲(Bitmap)和矢量存儲(Vector)
我們平常是以圖像分辨率(即象素點)和顏色數來描述數字圖象的。例如一張分辨率為640*480,16位色的數字圖片,就由2^16=65536種顏色的307200(=640*480)個素點組成。

位圖圖像(Bitmap):位圖方式是將圖像的每一個象素點轉換為一個數據。
當圖像是單色(只有黑白二色)時,8個象素點的數據只占據一個字節(一個字節就是8個二進制數,1個二進制數存放象素點);16色(區別于前段“16位色”)的圖像每兩個象素點用一個字節存儲;256色圖像每一個象素點用一個字節存儲。這樣就能夠精確地描述各種不同顏色模式的圖像圖面。位圖圖像彌補了矢量式圖像的缺陷,它能夠制作出色彩和色調變化豐富的圖像,可以逼真地表現自然界的景象,同時也可以很容易地在不同軟件之間交換文件,這就是位圖圖像的優點;而其缺點則是它無法制作真正的3D圖像,并且圖像縮放和旋轉時會產生失真的現象,同時文件較大,對內存和硬盤空間容量的需求也較高。位圖方式就是將圖像的每一像素點轉換為一個數據。如果用1位數據來記錄,那么它只能代表2種顏色(2^1=2);如果以8位來記錄,便可以表現出256種顏色或色調(2^8=256),因此使用的位元素越多所能表現的色彩也越多。通常我們使用的顏色有16色、256色、增強16位和真彩色24位。一般所說的真彩色是指24位(2^24)的位圖存儲模式適合于內容復雜的圖像和真實照片。但隨著分辨率以及顏色數的提高,圖像所占用的磁盤空間也就相當大;另外由于在放大圖像的過程中,其圖像勢必要變得模糊而失真,放大后的圖像像素點實際上變成了像素“方格”。 用數碼相機和掃描儀獲取的圖像都屬于位圖。

矢量圖像(Vector):矢量圖像存儲的是圖像信息的輪廓部分,而不是圖像的每一個象素點。例如,一個圓形圖案只要存儲圓心的坐標位置和半徑長度,以及圓的邊線和半徑長度,以及圓的邊線和內部的顏色即可。該存儲方式的缺點是經常耗費大量的時間做一些復雜的分析演算工作,圖像的顯示速度較慢;但圖像縮放不會失真;圖像的存儲空間也要小得多。所以,矢量圖比較適合存儲各種圖表和工程

數字圖像處理對象 - CSharp - C

RGB (0,0,0) --------> (255,255,255)

轉載于:https://www.cnblogs.com/fdyang/archive/2013/02/03/2891060.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/376866.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/376866.shtml
英文地址,請注明出處:http://en.pswp.cn/news/376866.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

緩存一致性解決方法

對于緩存 數據庫讀寫,有個經典的Cache Aside Pattern: 讀取:先讀取緩存,緩存里沒有,讀取數據庫,然后返回響應,順便保存緩存: 更新:先更新數據庫,然后刪除緩…

使用SpringMVC的表單驗證

上一篇搭建了基本項目,這一篇在此基礎上加入表單驗證功能。 第一步,添加command類 Java代碼 package test.bean; import javax.validation.constraints.Size; public class User { Size(min3,max30) private String username; …

hdu1247(Hat’s Words)

我以為像a、aa這樣的輸入應該是沒有輸出的,結果還是要輸出aa。 建樹的時候就是常規建樹,不過查找的時候要做一些變形:對于一個單詞,從第一位檢查有沒有單詞是它的前綴,如果有的話,再去檢查它的后半部分是不…

單體、分布式、微服務、Serverless軟件架構一覽

目錄軟件架構單體架構分布式應用微服務架構Serverless架構總結Reference軟件架構 軟件架構就是軟件的基本結構,合適的架構是軟件成功的最重要因素之一。這里列舉了目前流行的4種軟件架構。 單體架構 典型的三級架構:前端(web/手機端&#…

MyBatis3 association error - The content of element type resultMap must match (constructor?,id*,r...

MyBatis3 association error - The content of element type "resultMap" must match "(constructor?,id*,result*,association*,collection*,discriminator?)" 1.后臺錯誤信息-問題現象: ERROR [geby:Context initialization failed] 2013-0…

Midjourney V6刷屏,但它最可怕的地方居然不是那些神圖?

Midjourney在沉寂九個月后推出了Midjourney V6,這個文生圖產品體現出的更細膩的細節處理,更強大的語言理解能力和更加“不像AI”的圖片效果在過去幾天引發一片驚呼。 作為一個閉源的模型產品,Midjourney的魔法配方并不為人所知,但…

HTTP 錯誤500.19 -Internal Server Error

HTTP 錯誤500.19 -Internal Server Error 原文:HTTP 錯誤500.19 -Internal Server Error HTTP 錯誤500.19 -Internal Server Error 錯誤代碼 0x80070021 asp.net 2009-11-05 16:54:33 閱讀484 評論1 字號:大中小 錯誤摘要 HTTP 錯誤500.19 -Internal Server Error …

連續內存分區式內存管理

目錄前言分區式內存管理動態分區內存管理總結本筆記參考黃工的https://mp.weixin.qq.com/s/k0W_LqI1zBAYC1GU1U2HQA 前言 內存管理模塊主要負責內存的初始化、分配以及釋放。 從分配內存是否連續可以分為兩大類: 1、連續內存管理 為進程分配的內存空間是連續的&a…

用DEVC++作圖

小海豚學NOIP,老師說要用DEV C。 小海豚喜歡畫圖,記得以前用C#編些程序給她看。可前一陣打開看,我的免費Visual Studio過期了。可惡的Microsoft ,不想用盜版難道就要每個月就下載一次? 于是就用DEV C的Windows調用吧。…

Python服務器開發三:Socket

Python服務器開發三:Socket socket是操作系統中I/O的延續,它可以使進程和機器之間的通信成為可能。socket可以看成一個標準的文件描述符。不同的是文件需要用open()函數打開,而socket用socket() 函數建立.recv()、send()函數和read()、write(…

Syntax error: Bad for loop variable解決辦法

在Ubuntu下寫的shell文件t.sh執行時出現錯誤: 1 t.sh: 6: Syntax error: Bad for loop variable 從ubuntu 6.10開始,ubuntu就將之前默認的bash shell更換成了dash shell,其表現為/bin/sh鏈接倒了/bin/dash,而不是傳統的/bin/bash&…

Linux命令常見

摘自: 常考的 21 條 Linux 命令 目錄)cd,切換路徑ls,查看文件與目錄的命令cp,用于復制文件mv,用于移動文件、目錄cat,查看文件內容find,文件搜索文件權限命令, 設置權限,-取消權限文本處理命令打包和壓縮文件命令進程相…

記一次調試

這是我最近幾個月來遇到的最棘手的一個問題:* 昨天花了4個小時找出第一層次的原因這個糾結啊,本來和老婆說好準時下班回家吃飯的,結果被這個問題拖了老久。這是一個gradle的plugin,用來resolve公司內部的dependency的,…

OSGi.NET 學習筆記 [模塊化和插件化][小結]

【目錄】-【模塊化和插件化】-【小結】 現在我們來對OSGi.NET的“模塊化和插件化”做一個小結,再次把官方的說明拿出來  1) 物理隔離:基于UIOSP開發的模塊是一個物理隔離的可單獨部署的模塊,每一個模塊擁有獨立的文件夾、類型空…

miniob :相關環境配置

How to build 參考視頻:https://www.bilibili.com/video/BV1gv411A7oA?spm_id_from333.999.0.0將代碼下載并且安裝編譯。 git clone失敗的話參考:https://blog.csdn.net/sxg0205/article/details/81412921 install cmakebuild libevent git submodul…

Fedora 20 配置

前幾天裝了fedora 20, 斷斷續續的進行了以下配置: 1. 安裝oracle java及jdk版本切換 安裝的過程很簡單,從oracle官網上下載jdk及jre的rpm包,使用rpm -ivh 安裝。但是遇到一個問題,因為fedora系統自帶了openJDK,如果安裝oracle的jd…

raft算法學習(一):角色概念以及選舉過程

Raft算法是強領導模型,集群中只能有一個領導。 下面是raft的視頻講解: raft raft的三種角色及其概念 服務器節點狀態一共有三種:領導者(Leader)、跟隨著(Follower)、候選人(Candid…

解決 FLex 4.0 Module里面Alert.show();出錯問題

TypeError: Error #1009: 無法訪問空對象引用的屬性或方法。 at mx.managers::PopUpManagerImpl/http://www.adobe.com/2006/flex/mx/internal::createModalWindow()[E:\dev\hero_private\frameworks\projects\framework\src\mx\managers\PopUpManagerImpl.as:701] at mx.manag…

datetime2 數據類型

.net的Entity Framework構建網站數據層,給一個實體的DATETIME類型的屬性賦值時 突然莫名奇妙顯示有一個類型不匹配的異常如下: System.Data.SqlClient.SqlException: 從 datetime2 數據類型到 datetime 數據類型的轉換產生一個超出范圍的值。 解決方法&a…

Yslow的A評級指南

這里測的是V2引擎,V1想拿A幾乎不可能,一個CDN測試的F就可以輕松廢了你的網站。 A評級 現在一個一個分析。 User fewer HTTP Requests:減少HTTP請求 圖片、CSS、JS、flash等這些都需要增加http請求數,減少這些元素的數量能減少響應…