




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 第第6講講 圖像像素點的處理圖像像素點的處理 教學目標與要求教學目標與要求:l了解圖像處理的原理以及雙緩沖技術l了解Java捕獲屏幕圖像的原理教學重點、難點:教學重點、難點:1. 教學重點:l圖像處理的原理l圖像處理具體執行步驟l雙緩沖技術l如何捕獲屏幕圖像2.教學難點:l應用雙緩沖技術進行圖像處理提問提問: 當我們成功地加載和顯示圖像,對所得到的圖像的顯示效果并不滿意的情況下,我們將采取什么的方式來解決,以達到我們想要的顯示效果呢?6.1 圖像處理的原理圖像處理的原理 獲取加載了的圖像所有像素值,對這些像素值進行相應的處理之后,重構一個新的圖像。圖像處理的方法有:圖像變換、圖像編碼、圖像壓
2、縮、圖像解碼等等。6.2 圖像處理具體執行步驟為:圖像處理具體執行步驟為: l使用MediaTracker類加載圖像l實例化PixelGrabber類l使用其grabPixels()方法抓取圖像像素,生成了圖像像素數組l對這個數組進行各種變換l通過MemoryImageSource類將數組中的像素值重構一個新的圖像l使用paint()將新的圖像顯示出來(1) MediaTracker類是一個跟蹤多種媒體對象狀態的實用工具類。媒體對象可以包括音頻剪輯和圖像,但目前僅支持圖像。l要使用媒體跟蹤器,需要創建一個MediaTracker 實例l調用addImage()方法向此媒體跟蹤器正在跟蹤的圖像列
3、表添加一個圖像。另外,還可以為每個圖像分配一個惟一的標識符,此標識符可控制獲取圖像的優先級順序。l調用waitForID()方法開始加載由此媒體跟蹤器跟蹤且具有指定標識符的所有圖像。 其創建格式如下: MediaTracker tracker1=new MediaTracker(this); img=Toolkit.getDefaultToolkit().getImage(a.jpg); /其中0為圖像的標識符 tracker1.addImage(img,0); /加載由此媒體跟蹤器跟蹤且標識符為0的圖像 try tracker1.waitForID(0); catch(Interrupted
4、Exception e) (2) 實例化PixelGrabber類,提供了三種不同的構造方式:lPixelGrabber (Image img, int x, int y, int w, int h, boolean forceRGB) 創建一個 PixelGrabber 對象,以便從指定的圖像中抓取像素矩形部分(x, y, w, h)。forceRGB為像素的傳遞方式,其值為true時,表示以RGB方式傳遞像素;其值為false時,表示以圖像構造器方式傳遞像素。l PixelGrabber(Image img, int x, int y, int w, int h, int pix, int
5、 off, int scansize) 創建一個 PixelGrabber 對象,以便從指定的圖像中將像素矩形部分 (x, y, w, h) 抓取到給定的數組中。Off 為存放第一個像素的位置,通常取0;scansize為每行的像素個數,即圖像的寬度。l PixelGrabber (ImageProducer ip, int x, int y, int w, int h, int pix, int off, int scansize) 創建一個 PixelGrabber 對象,以便從指定 ImageProducer(圖像構造器)所生成的圖像中將像素矩形部分 (x, y, w, h) 抓取到給定
6、的數組中。(3)PixelGrabber類的對象調用grabPixels()方法將抓取到的圖像像素存入數組中,注意要使用try-catch結構。(4)針對該數組中的像素值,對其進行各種變換,以達到我們處理圖像的目的。比如,可對其RGB值和Alpha值重新計算和賦值,從而得到一個具有不同透明度與顏色值的像素數組。(5)通過MemoryImageSource類構造一個使用變換過的數組為Image對象生成數據的ImageProducer對象imgprd,調用createImage(imgprd)方法便可產生一個新圖像。MemoryImageSource類創建格式如下:ImageProducer Me
7、moryImageSource(int w, int h, int pix, int off, int scan) 構造一個使用默認 RGB ColorModel 中的整數數組為 Image 對象生成數據的 ImageProducer 對象。(6) 通過paint()即可將新圖像顯示出來 應用示例:應用示例:Image1.java(本程序為改變圖像的透明值)6.3 雙緩沖技術雙緩沖技術 l緩沖是在內存或顯存中開辟一塊與屏幕一樣大小的存儲區域,作為緩沖屏幕。將下一幀要顯示的圖像繪制到這個緩沖屏幕上面,在顯示的時候將虛擬屏幕中的數據復制到可見視頻緩存區里面去。 l在Java程序中要實現這個技術,首
8、先在緩沖區建立一個繪制圖像的Graphics對象,進行paint()的操作,當完成了以后再把它顯示到屏幕上,由于從緩沖區讀取數據的速度很快,就不會出現閃爍了。 雙緩沖技術優缺點雙緩沖技術優缺點 :l優點:圖形繪制過程是在不可見的虛擬屏幕中進行,所以可以消除屏幕的閃爍。l缺點:在顯示的時候將虛擬屏幕中的數據復制到可見視頻緩存區里面去,由于要復制大量的數據,速度可能就會慢一些。如何使用雙緩沖建立圖像緩沖區?如何使用雙緩沖建立圖像緩沖區?其創建方式如下所示:try img=createImage(800,600); /建立圖像對象緩沖區 graphics=img.getGraphics(); /得到
9、繪制圖像的graphics對象 catch (NullPointerException e)graphics.drawImage(cropped,0,30,this); /在屏幕外的緩沖區中繪 /制圖像g.drawImage(img,0,0,this); /在屏幕上顯示圖像 6.4 Java捕獲屏幕圖像的原理捕獲屏幕圖像的原理 “捕獲屏幕圖像”是比較接近操作系統底層的操作,這里我們提供一個“機器人” Robot類,該類用于產生與本地操作系統有關的底層輸入、測試應用程序運行或自動控制應用程序運行。Robot類提供一個createScreenCapture()方法,可以直接將全屏幕或某個屏幕區域的
10、像素復制到一個BufferedImage對象中,只需要將該對象寫入到一個圖像文件中,就完成了屏幕到圖像的復制過程。 (1)Robot類createScreenCapture()方法的創建格式如下:BufferedImage createScreenCapture(Rectangle screenRet)將指定矩形區域內的屏幕像素復制下來產生一個BufferedImage對象。(2)Robot類應用的主代碼段如下: Robot robot=null; try robot=new Robot(); catch(Exception er) Rectangle screenRect=null; int
11、 width=getToolkit().getScreenSize().width; int height=getToolkit().getScreenSize().height; screenRect=new Rectangle(0,0,width,height);/將指定矩形區域內的屏幕像素復制下來產生一個BufferedImage對象BufferedImage image=robot.createScreenCapture(screenRect); /創建一個圖像文件 File file =new File(ScreenCapture.jpg); /將截取到的屏幕圖像寫到圖像文件file中 repaint(); public void paint(Graphics g) g.drawImage(image,0,0,800,600,this); (3)應用示例:MakeJPEG.java(應用Robot類捕獲屏幕圖像)教學總結:教學總結: 1.掌握應用雙緩沖技術進行圖像處理,以及了解雙緩沖技術優缺點。 2. 了解一些與操作平臺有關的類
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- XXX石油服務集團股份有限公司ESG管理制度
- 電力行業水電商業模式穩定低利率時代價值凸顯
- 2025年鄉村振興農村電子商務基礎設施建設資金申請指南
- 分布式能源系統生物質能源應用2025年與生物質能發電技術專利布局研究報告
- 2025年教育直播平臺教育平臺行業生態與政策環境研究報告
- 高校產學研合作技術轉移與成果轉化在海洋工程領域的應用研究報告
- 2025年茶飲市場品牌擴張中的消費者洞察與需求滿足研究報告
- 食品添加劑在飲料行業的安全性評估與合規使用報告
- 2025年工業互聯網平臺NFV在智能工廠設備狀態監測中的應用實踐報告
- 紡織服裝制造業智能化生產信息化平臺建設報告
- 2024年全國財會知識競賽考試題庫(濃縮500題)
- 2024年青海省中考生物地理合卷試題(含答案解析)
- 實詞辨析與成語辨析
- 項目一乙烯生產過程課件
- 三位數乘一位數練習題(300道)
- 高職英語課程說課稿課件
- 政府投資項目審計與報告案例信息講解課件
- 婦產科課件-女性生殖系統炎癥
- 三甲醫院體檢報告單A4
- 污水處理缺氧、厭氧、好氧的工藝流程分析
- 子午線輪胎斷面分析
評論
0/150
提交評論