當前位置:首頁 » 操作系統 » 圖像演算法筆試題

圖像演算法筆試題

發布時間: 2023-06-11 03:04:22

java的圖像演算法

//沒聽懂你的需求,能更清楚一些嗎?

我以前的一個程序使用BufferedImage讀取圖像像素點的RGB值,例子在下面。

你從例子中了解一下用一個整數表示RGB顏色的方法。然後用setRGB方法滿足你的要求。

方法:
java.awt.image.BufferedImage

public int getRGB(int x,int y)
返回默認 RGB 顏色模型 (TYPE_INT_ARGB) 和默認 sRGB 顏色空間中的整數像素。如果此默認模型與該圖像的 ColorModel 不匹配,則發生顏色轉換。在使用此方法所返回的數據中,每個顏色分量只有 8 位精度。

public void setRGB(int x, int y,int rgb)
將此 BufferedImage 中的像素設置為指定的 RGB 值。假定該像素使用默認 RGB 顏色模型、TYPE_INT_ARGB 和默認 sRGB 顏色空間。對於具有 IndexColorModel 的圖像,則選擇最接近的顏色的索引。
參數:
x - 要設置的像素的 X 坐標
y - 要設置的像素的 Y 坐標
rgb - RGB 值

例子:(獲取RGB值)---了解一下用一個整數表示RGB顏色的方法
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
import java.io.*;

public class Test{
public static void main(String args[]) {
int[] rgb = new int[3];

File file = new File("a.bmp");
BufferedImage bi=null;
try{
bi = ImageIO.read(file);
}catch(Exception e){
e.printStackTrace();
}

int width=bi.getWidth();
int height=bi.getHeight();
int minx=bi.getMinX();
int miny=bi.getMinY();
System.out.println("width="+width+",height="+height+".");
System.out.println("minx="+minx+",miniy="+miny+".");

for(int i=minx;i<width;i++){
for(int j=miny;j<height;j++){
//System.out.print(bi.getRGB(jw, ih));
int pixel=bi.getRGB(i, j);
rgb[0] = (pixel & 0xff0000 ) >> 16 ;
rgb[1] = (pixel & 0xff00 ) >> 8 ;
rgb[2] = (pixel & 0xff );
System.out.println("i="+i+",j="+j+":("+rgb[0]+","+rgb[1]+","+rgb[2]+")");

}
}

}

}

② 根據圖像處理運算的輸入信息和輸出信息的類型,圖像處理演算法可分為哪三大類並各舉一個例子

圖像處理,是對圖像進行分析、加工、和處理,使其滿足視覺、心理以及其他要求的技術。圖像處理是信號處理在圖像域上的一個應用。目前大多數的圖像是以數字形式存儲,因而圖像處理很多情況下指數字圖像處理。此外,基於光學理論的處理方法依然佔有重要的地位。

圖像處理是信號處理的子類,另外與計算機科學、人工智慧等領域也有密切的關系。

傳統的一維信號處理的方法和概念很多仍然可以直接應用在圖像處理上,比如降噪、量化等。然而,圖像屬於二維信號,和一維信號相比,它有自己特殊的一面,處理的方式和角度也有所不同。
目錄
[隱藏]

* 1 解決方案
* 2 常用的信號處理技術
o 2.1 從一維信號處理擴展來的技術和概念
o 2.2 專用於二維(或更高維)的技術和概念
* 3 典型問題
* 4 應用
* 5 相關相近領域
* 6 參見

[編輯] 解決方案

幾十年前,圖像處理大多數由光學設備在模擬模式下進行。由於這些光學方法本身所具有的並行特性,至今他們仍然在很多應用領域佔有核心地位,例如 全息攝影。但是由於計算機速度的大幅度提高,這些技術正在迅速的被數字圖像處理方法所替代。

從通常意義上講,數字圖像處理技術更加普適、可靠和准確。比起模擬方法,它們也更容易實現。專用的硬體被用於數字圖像處理,例如,基於流水線的計算機體系結構在這方面取得了巨大的商業成功。今天,硬體解決方案被廣泛的用於視頻處理系統,但商業化的圖像處理任務基本上仍以軟體形式實現,運行在通用個人電腦上。

[編輯] 常用的信號處理技術

大多數用於一維信號處理的概念都有其在二維圖像信號領域的延伸,它們中的一部分在二維情形下變得十分復雜。同時圖像處理也具有自身一些新的概念,例如,連通性、旋轉不變性,等等。這些概念僅對二維或更高維的情況下才有非平凡的意義。

圖像處理中常用到快速傅立葉變換,因為它可以減小數據處理量和處理時間。

[編輯] 從一維信號處理擴展來的技術和概念

* 解析度(Image resolution|Resolution)
* 動態范圍(Dynamic range)
* 帶寬(Bandwidth)
* 濾波器設計(Filter (signal processing)|Filtering)
* 微分運算元(Differential operators)
* 邊緣檢測(Edge detection)
* Domain molation
* 降噪(Noise rection)

[編輯] 專用於二維(或更高維)的技術和概念

* 連通性(Connectedness|Connectivity)
* 旋轉不變性(Rotational invariance)

[編輯] 典型問題

* 幾何變換(geometric transformations):包括放大、縮小、旋轉等。
* 顏色處理(color):顏色空間的轉化、亮度以及對比度的調節、顏色修正等。
* 圖像合成(image composite):多個圖像的加、減、組合、拼接。
* 降噪(image denoising):研究各種針對二維圖像的去噪濾波器或者信號處理技術。
* 邊緣檢測(edge detection):進行邊緣或者其他局部特徵提取。
* 分割(image segmentation):依據不同標准,把二維圖像分割成不同區域。
* 圖像製作(image editing):和計算機圖形學有一定交叉。
* 圖像配准(image registration):比較或集成不同條件下獲取的圖像。
* 圖像增強(image enhancement):
* 圖像數字水印(image watermarking):研究圖像域的數據隱藏、加密、或認證。
* 圖像壓縮(image compression):研究圖像壓縮。

[編輯] 應用

* 攝影及印刷 (Photography and printing)
* 衛星圖像處理 (Satellite image processing)
* 醫學圖像處理 (Medical image processing)
* 面孔識別, 特徵識別 (Face detection, feature detection, face identification)
* 顯微圖像處理 (Microscope image processing)
* 汽車障礙識別 (Car barrier detection)

[編輯] 相關相近領域

* 分類(Classification)
* 特徵提取(Feature extraction)
* 模式識別(Pattern recognition)
* 投影(Projection)
* 多尺度信號分析(Multi-scale signal analysis)
* 離散餘弦變換(The Discrete Cosine Transform)

③ 現今的圖像壓縮演算法有哪些急...

淺談圖像壓縮演算法

余科亮

本文僅討論靜止圖像的壓縮基本演算法,圖像壓縮的目的在於以較少的數據來
表示圖像以節約存儲費用,或者傳輸時間和費用。
JPEG壓縮演算法可以用失真的壓縮方式來處理圖像,但失真的程度卻是肉眼所
無法辯認的。這也就是為什麼JPEG會有如此滿意的壓縮比例的原因。
下面主要討論,JPEG基本壓縮法。
一.JPEG壓縮過程

JPEG壓縮分四個步驟實現:
1.顏色模式轉換及采樣;
2.DCT變換;
3.量化;
4.編碼。

二.1.顏色模式轉換及采樣

RGB色彩系統是我們最常用的表示顏色的方式。JPEG採用的是YCbCr色彩系統。
想要用JPEG基本壓縮法處理全彩色圖像,得先把RGB顏色模式圖像數據,轉換為
YCbCr顏色模式的數據。Y代表亮度,Cb和Cr則代表色度、飽和度。通過下列計算
公式可完成數據轉換。
Y=0.2990R+0.5870G+0.1140B
Cb=-0.1687R-0.3313G+0.5000B+128
Cr=0.5000R-0.4187G-0.0813B+128
人類的眼晴對低頻的數據比對高頻的數據具有更高的敏感度,事實上,人類
的眼睛對亮度的改變也比對色彩的改變要敏感得多,也就是說Y成份的數據是比較
重要的。既然Cb成份和Cr成份的數據比較相對不重要,就可以只取部分數據來處
理。以增加壓縮的比例。JPEG通常有兩種采樣方式:YUV411和YUV422,它們所代
表的意義是Y、Cb和Cr三個成份的數據取樣比例。

2.DCT變換

DCT變換的全稱是離散餘弦變換(Discrete Cosine Transform),是指將一組
光強數據轉換成頻率數據,以便得知強度變化的情形。若對高頻的數據做些修飾,
再轉回原來形式的數據時,顯然與原始數據有些差異,但是人類的眼睛卻是不容
易辨認出來。
壓縮時,將原始圖像數據分成8*8數據單元矩陣,例如亮度值的第一個矩陣內
容如下:

JPEG將整個亮度矩陣與色度Cb矩陣,飽和度Cr矩陣,視為一個基本單元稱作
MCU。每個MCU所包含的矩陣數量不得超過10個。例如,行和列采樣的比例皆為4:
2:2,則每個MCU將包含四個亮度矩陣,一個色度矩陣及一個飽和度矩陣。
當圖像數據分成一個8*8矩陣後,還必須將每個數值減去128,然後一一代入
DCT變換公式中,即可達到DCT變換的目的。圖像數據值必須減去128,是因為DCT
轉換公式所接受的數字范圍是在-128到+127之間。
DCT變換公式:

x,y代表圖像數據矩陣內某個數值的坐標位置
f(x,y)代表圖像數據矩陣內的數個數值
u,v代表DCT變換後矩陣內某個數值的坐標位置
F(u,v)代表DCT變換後矩陣內的某個數值
u=0 且 v=0 c(u)c(v)=1/1.414
u>0 或 v>0 c(u)c(v)=1
經過DCT變換後的矩陣數據自然數為頻率系數,這些系數以F(0,0)的值最
大,稱為DC,其餘的63個頻率系數則多半是一些接近於0的正負浮點數,一概稱
之為AC。
3、量化
圖像數據轉換為頻率系數後,還得接受一項量化程序,才能進入編碼階段。
量化階段需要兩個8*8矩陣數據,一個是專門處理亮度的頻率系數,另一個則是
針對色度的頻率系數,將頻率系數除以量化矩陣的值,取得與商數最近的整數,
即完成量化。
當頻率系數經過量化後,將頻率系數由浮點數轉變為整數,這才便於執行最
後的編碼。不過,經過量化階段後,所有數據只保留整數近似值,也就再度損失
了一些數據內容,JPEG提供的量化表如下:

4、編碼
Huffman編碼無專利權問題,成為JPEG最常用的編碼方式,Huffman編碼通常
是以完整的MCU來進行的。
編碼時,每個矩陣數據的DC值與63個AC值,將分別使用不同的Huffman編碼
表,而亮度與色度也需要不同的Huffman編碼表,所以一共需要四個編碼表,才
能順利地完成JPEG編碼工作。
DC編碼
DC是彩採用差值脈沖編碼調制的差值編碼法,也就是在同一個圖像分量中取
得每個DC值與前一個DC值的差值來編碼。DC採用差值脈沖編碼的主要原因是由於
在連續色調的圖像中,其差值多半比原值小,對差值進行編碼所需的位數,會比
對原值進行編碼所需的位數少許多。例如差值為5,它的二進製表示值為101,如
果差值為-5,則先改為正整數5,再將其二進制轉換成1的補數即可。所謂1的補
數,就是將每個Bit若值為0,便改成1;Bit為1,則變成0。差值5應保留的位數
為3,下表即列出差值所應保留的Bit數與差值內容的對照。

在差值前端另外加入一些差值的霍夫曼碼值,例如亮度差值為5(101)的位
數為3,則霍夫曼碼值應該是100,兩者連接在一起即為100101。下列兩份表格分
別是亮度和色度DC差值的編碼表。根據這兩份表格內容,即可為DC差值加上霍夫
曼碼值,完成DC的編碼工作。

AC編碼
AC編碼方式與DC略有不同,在AC編碼之前,首先得將63個AC值按Zig-zag排
序,即按照下圖箭頭所指示的順序串聯起來。

63個AC值排列好的,將AC系數轉換成中間符號,中間符號表示為RRRR/SSSS,
RRRR是指第非零的AC之前,其值為0的AC個數,SSSS是指AC值所需的位數,AC系
數的范圍與SSSS的對應關系與DC差值Bits數與差值內容對照表相似。
如果連續為0的AC個數大於15,則用15/0來表示連續的16個0,15/0稱為ZRL
(Zero Rum Length),而(0/0)稱為EOB(Enel of Block)用來表示其後所
剩餘的AC系數皆等於0,以中間符號值作為索引值,從相應的AC編碼表中找出適
當的霍夫曼碼值,再與AC值相連即可。
例如某一組亮度的中間符為5/3,AC值為4,首先以5/3為索引值,從亮度AC
的Huffman編碼表中找到1111111110011110霍夫曼碼值,於是加上原來100(4)
即是用來取[5,4]的Huffman編碼1111111110011110100,[5,4]表示AC值為4的
前面有5個零。
由於亮度AC,色度AC霍夫曼編碼表比較長,在此省略去,有興趣者可參閱相
關書籍。
實現上述四個步驟,即完成一幅圖像的JPEG壓縮。

參考資料
[1] 林福宗 《圖像文件格式(上)——Windows 編程》,清華大學出版社,
1996年
[2] 李振輝、李仁各編著,《探索圖像文件的奧秘》,清華大學出版社,1996年
[3] 黎洪松、成實譯《JPEG靜止數據壓縮標准》,學苑出版社,1996年

熱點內容
喵喵試玩腳本 發布:2025-04-05 19:42:08 瀏覽:454
我的世界布吉島伺服器怎麼加材質包 發布:2025-04-05 19:32:27 瀏覽:593
ftp怎麼連接路由 發布:2025-04-05 19:20:52 瀏覽:231
手游腳本商城 發布:2025-04-05 19:08:23 瀏覽:799
摘星游戲腳本 發布:2025-04-05 18:49:51 瀏覽:589
c語言中k什麼意思 發布:2025-04-05 18:49:40 瀏覽:86
php在線編程 發布:2025-04-05 18:47:30 瀏覽:541
sqlserver運行 發布:2025-04-05 18:41:32 瀏覽:44
如何安卓遷移蘋果 發布:2025-04-05 18:35:03 瀏覽:577
c語言輸入處理 發布:2025-04-05 18:34:58 瀏覽:99