2010年12月19日 星期日

微處理機與多媒體互動技術

有一套軟硬體都是採開放式的平台稱為Arduino,是一套8位元的微處理機,很多藝術工作者在做展場設計時,經常用到的設備,透過簡單的C語言控制,就能做到展場的特效,以下為Arduino控制Flash動畫的教學範例。

Arduino Flash communication ( Actionscript 2.0 ) from Kasper Kamperman on Vimeo.

2010年11月18日 星期四

此因恰巧需擷取部分聲音信號,而使用GoldWave軟體,的範例說明,希望大家若有需對音源的信號進行修剪,有小小啟發。
修剪過程如下:
首先開取音源檔,GoldWave軟體幾乎大部分video皆可開啟,如下圖
因為立體聲所以有綠紅上下兩聲波頻道,下圖為其工具列:
我們將用下圖的幾個按鈕:
新增圖片 分別為"選擇區段刪除"、"選擇區段保留"、"選擇所看到的區段訊號"、"選擇全部訊號"、 "選擇區段設定"、"觀看全部訊號"(目前隱藏)、"觀看選擇區段"、"跳至前次觀看區段"、"放大"、"縮小"(目前隱藏)和"播放全部聲音訊號"、"播放選擇區段聲音訊號"、"接續播放聲音訊號"等作用。

大致選擇你想裁除或保留區段:作法大致作法有三
  1. 使用"選擇區段設定"按鍵,進行輸入選擇區段如下圖

  2. 使用滑鼠右鍵選擇開始標記和結束標記,標示選擇區段

  3. 在聲音圖上按下滑鼠左鍵不放,然後左移至選擇區段之最左端,再右移至選擇區段之最右端如下圖,最後放掉滑鼠左鍵,即可選擇。
選擇完成後如下圖 上圖中包含兩大區塊:上區塊為觀看區,下區塊為目前訊號全部狀態。

選擇完成後可以"觀看選擇區段"或"放大"按鍵再次觀看所選擇區段是否正確,若需修正可以滑鼠左鍵拉拖選擇區段之左端與右端。至於正確與否,可用"播放全部聲音訊號"和"播放選擇區段聲音訊號"按鍵聽取並搜尋,記下如前圖中播放時間軸的時間位置,再修正選擇區段及完成了區段選定。最後完成如下圖

上圖中之上區塊為全部觀看區段,藍色部分為選擇區段,黑色為未被選取區段,下區塊為全部訊號,而白色框線為觀看區段的標示區,可以滑鼠左鍵拉拖改變觀看區段大小。上下區塊皆可以滑鼠左鍵拉拖改變選擇區段大小。

最後再將選擇區段以"選擇區段刪除"或"選擇區段保留"按鍵刪除或保留、其餘刪除,如下圖刪除選擇區段。再進行存檔動作即可。















2010年11月15日 星期一

在數位信號處理的領域中,濾波器是一個重要的課題。而在Matlab的Signal Processing Toolbox™中,有一個工具,就是濾波器設計Filter Design and Analysis Tool (FDATool)。你只要在 MATLAB command視窗,輸入:
>>fdatool
即可開始一個圖形介面GUI displays,而預設濾波器default filter如下:
圖一


視窗中有三個區域,上半部包括了目前的濾波器的規格以及響應,上半部左邊是濾波器的性質,包括濾波器結構、階數、使用區段、是否穩定(the filter structure, order, number of sections used and whether the filter is stable or not)
上半部的右邊則是顯示各種濾波器的響應,如幅度、群延遲、濾波器係數等magnitude response, group delay and filter coefficients。
下半部則是互動式視窗,也就設計面板The Design Panel,可以定義濾波器的規格
例如設計一個低通濾波器,可以如下圖設定,但Density Factor是什麼呢?
Matlab的說明指出:The FIR Equiripple filter has a Density Factor option which controls the density of the frequency grid. Increasing the value creates a filter which more closely approximates an ideal equiripple filter, but more time is required as the computation increases.
我就使用了二種不同的設定,二種不同的設計結果,發現係數幾乎完全一樣(差距的數量級在10的負5次方),因此在結果上差異不大。
圖二-Density factor=16

圖三-Density factor=64

圖四和圖五是各自得到的濾波器響應,
無法分辨差異


那係數呢?如圖六,差別也很小,因此這個設定似乎不是很重要,就設一個中等的數字(幾十)就好了

2010年11月2日 星期二

JAVA影像處理程式設計系列 (一)影像直方圖(histogram)

影像的直方圖是以影像的像素值當橫座標,像素值出現的次數(或比例)當縱座標,所繪製的圖形。在影像分析上由直方圖可取得基本的分析資訊,彩色的影像可對RGB三種成分分別作直方圖分析,亦可先求出像素的平均值再作直方圖分析。本文中的程式包含兩個類別,PlotHistogram類別的功能是繪製直方圖,PlotHistogramTest類別內包含main()方法,主要是輸入及顯示影像、改變影像為Banded Sample Model(可固定影像格式,方便處理)及計算像素值出現的次數。(圖一)、(圖二)、(圖三)、(圖四)分別是輸入的原始影像及程式繪製的R、G、B直方圖,由藍色成分的直方圖可發現此張影像的藍色成分很少。還有,程式沒有作repaint處理,直方圖視窗請移到沒有被蓋住的地方,最小化後再最大化即會顯示。

//plot histogram
//constructor parameters as below:
//1.title
//2.H--histogram array;data type is int; H.length= 256
//3.max is the max value of H;data type is float
// only plot one band for each instance
import javax.swing.*;
import java.awt.*;
class PlotHistogram extends JFrame
{
int[] H=new int[256];
int max;
PlotHistogram(String title, int[] H, int max)
{
super(title);
this.H=H;
this.max=max;
setSize(600,450);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void paint(Graphics g)
{
super.paint(g); //call superclass's paint method
g.setColor(Color.white);
g.fillRect(0,0,600,450);
g.setColor(Color.black);
g.drawLine(50,50,50,400);
g.drawLine(50,400,550,400);
int width=600;
int height=450;
float stepX = (float) (width-100)/ (float)H.length;
float stepY = (float) (height-100 )/ (float) max;
for ( int i = 0; i < H.length; i++ )
{
int x = (int) ((float)i*stepX);
int y = (int) ((float)H[i]*stepY);
g.drawLine(x+50,400,x+50,height-50-y);
if(i%50==0)
{
String s=Integer.toString(i);
g.drawString(s,x+50,420);
}
}
}
}



import javax.swing.*;
import java.awt.*;
import java.awt.image.*;
import java.util.*;
import java.io.*;
import javax.media.jai.*;
import javax.media.jai.operator.*;
import javax.media.jai.widget.ScrollingImagePanel;
class PlotHistogramTest
{
public static void main(String args[])
{
int[][] histogram=new int[3][256];
int[] max={0,0,0};
// input original image
Scanner scanner= new Scanner(System.in);
System.out.println("Plase input the path and file name of the image file.");
String fileName = scanner.next();
RenderedOp img0 = JAI.create("fileload",fileName);
//display original image
JFrame f=new JFrame();
f.setTitle(fileName+"(original image)");
f.add(new ScrollingImagePanel(img0,img0.getWidth(),img0.getHeight()));
f.pack();
f.show();
f.setDefaultCloseOperation(f.EXIT_ON_CLOSE);
//reformat image----image0 to image1
//BandedSampleModel, DataBuffer.TYPE_BYTE
int img1Width=img0.getWidth();
int img1Height=img0.getHeight();
ImageLayout layout=new ImageLayout();
layout.setSampleModel(new BandedSampleModel(DataBuffer.TYPE_BYTE,img1Width,img1Height,3));
RenderingHints rh=new RenderingHints(JAI.KEY_IMAGE_LAYOUT,layout);
RenderedOp img1=FormatDescriptor.create(img0,DataBuffer.TYPE_BYTE,rh);

//get pixel data from image 1
Raster ras1=img1.getData();
DataBuffer daBuf1=ras1.getDataBuffer();

//computing histogram
for(int i=0;i<3;i++) //initialize histogrsm with 0
for(int j=0;j<256;j++)
histogram[i][j]=0;

for(int bank=0; bank<3; bank++)
for(int i=0;i for(int j=0;j {
int g=daBuf1.getElem(bank,i*img1Width+j);
histogram[bank][g]=histogram[bank][g]+1;
}
//plot histogram---using "plotHistogram class"
//looking for the max value
for(int bank=0; bank<3; bank++)
for (int g=0; g< 256; g++)
{
if (histogram[bank][g]>max[bank])
max[bank]=histogram[bank][g];
}
//building R, G, B plotHistogram instance
PlotHistogram plotRed=new PlotHistogram("histogram-RED",histogram[0],max[0]);
PlotHistogram plotGREEN=new PlotHistogram("histogram-GREEN",histogram[1],max[1]);
PlotHistogram plotBLUE=new PlotHistogram("histogram-BLUE",histogram[2],max[2]);
}
}













2010年11月1日 星期一

2010年10月17日 星期日

如何讓Android的畫面跑得更順暢

Android不但目前最熱門的課程,仔細品嘗它的原碼內容,您會發現有許多研究的題材,下面影片即介紹如何讓Android的UI顯示起來更快又不會消耗太多的資源。

2010年10月15日 星期五

多媒體應用之產業範疇與市場前景

  台灣電子資訊產業的發展,已在全球生產體系中取得優勢地位,成為全球第三大資訊硬體大國。近年來,經由全球化佈局的努力,台灣電子資訊業的核心競爭價值已從過去倚賴低附加價值、替代性高的生產與裝配活動,開始推移至高附加價值,重視產品設計與創新的研發設計中心,以及重視整合行銷的全球運籌中心。
  從網際網路普及後,因數位匯流使得包括資訊、電信、媒體等產業產生劇烈變化。接下來的變化則是各行各業為因應數位化而產生的許多新營運模式與市場契機,這些變化的關鍵都指向於數位內容之發展,因此「內容才是主宰」成為新一波產業革命的關鍵。特別是台灣處於東西文化交會點,承襲悠久的中華文化,並包容接納西方文化與日本文化、南島文化等,若能善用此優勢,將豐富的文化與生活型態融合,並結合資訊與網路將可開創出具有全球競爭力且獨特性的數位內容型態。

■產業範疇

  根據經濟部數位內容產業推動辦公室的界定,數位內容是指將圖像、文字、影像、語音等資料,運用資訊科技加以數位化,並整合運用之產品或服務。由於數位內容產業全球都仍處於新興發展階段,產業區隔與行業定義都尚未定型;可以說,凡是能在手機、網路、電視、資訊家電上出現的影音訊息,都能納入數位內容的範疇。但依據一般產業界的慣例及「行政院數位內容產業發展指導小組」的分類法,一般將數位內容產業按照產品與服務特性分為以下的八大領域:
  一、數位遊戲:
    以資訊平台提供聲光娛樂給一般消費大眾,包括家用遊戲機軟體(Console Game-PS2、XBOX、GameCube)、個人電腦遊戲軟體(PC Game)、掌上型遊戲軟體(PDA、Gameboy、手機遊戲)、大型遊戲機台遊戲(Arcade Game)
  二、電腦動畫:
    運用電腦影像廣泛應用於娛樂與工商用途,如影視、遊戲、網路傳播等娛樂效果,及應用於建築、工業設計等商業行為。
  三、數位學習:
    以電腦等終端設備為輔助工具之學習活動,包含數位學習內容製作、工具軟體、建置服務、課程服務等。
  四、數位影音應用:
    數位化拍攝、傳送、播放之數位影音內容,如傳統音樂、電影、電視節目進行數位化,及數位音樂、數位KTV、互動隨選影音節目等數位影音創新應用。
  五、行動內容:
    運用行動通訊網路提供數據內容及服務,包含手機簡訊、行動數據服務,如導航、地理資訊等。
  六、網路服務:
    提供網路內容、連線、儲存、傳送、播放之服務,包含各類網路服務,如ICP、ASP、ISP、IDC、MDC等。
  七、內容軟體:
    提供數位內容應用服務所需之軟體工具及平台,包含內容工具/平台軟體、內容應用軟體、內容專業服務等。
  八、數位出版典藏:
    包括數位出版、數位典藏、電子資料庫等。

■市場前景

  隨著網際網路的普及化與寬頻化,各種線上服務皆蓬勃發展。其中又以線上遊戲、線上影音多媒體服務,以及線上商務的商業市場發展最快速。以遊戲產業發展為例,根據英國市調公司 Juniper Research 新調查報告,預估2008年單是全球遊戲市場整體產值達350 億美金,而遊戲產業也會成為全球最大的娛樂產業,重要性遠遠超過電影、 音樂等產業。這項報告指出,未來的遊戲產業主要還是以電視遊戲產業,電腦線上遊戲與手機遊戲三大方向為主。
  繼數位遊戲快速發展為全球性的龐大產業市場後,最近最成功的例子則為數位音樂服務,特別是MP3 格式的音樂下載及播放裝置已成為當前最流行的隨身音響。因此也觸發了數位音樂的高速成長。根據資策會統計預估,過去三年來,全球數位內容市場規模每年以33.8%成長,預估2004年全球數位內容產值將達美金2,228億元。另根據亞太經合會(APEC)的資料,全球數位內容產值的各種類內容型態當中,以動畫以及遊戲兩項目產值最高;其中又以網路電影、數位出版、無線上網內容、教育內容等項目,具有最大的成長潛力。
  以國內市場的發展來看,根據數位內容產業發展辦公室的統計,我國數位內容產業2003年產值達約新台幣1800億元,較2002年成長近兩成,並且預測未來幾年應可維持每年20% 以上成長,預估到2006 年將成長至新台幣3,700億元。 就類型來看,最近三年來國內數位內容產業的主要發展集中於各種遊戲軟體、線上遊戲服務,以及網站內容服務等方面。

■就業特性

  根據經濟部數位內容產業推動辦公室估計,透過政策鼓勵,數位內容產業在 2006年之前可望創造近40,000個就業機會,而使產業員工人數增加至70,000人。相形之下,相關專業人才需求孔急,預估到2007 年人才缺口將擴大到將近9000人。造成國內數位內容產業人才不足的主要的原因是,科技與人文之間的交流不夠,理工科系畢業者往往缺乏人文的深度,而人文科系人才又無法掌握數位科技所能發揮的潛力。例如,實務經驗上,內容產業的人才除了需理工科系背景的程式設計與系統人員外,像創意、企畫、製作、動畫、行銷及管理等,反而是人文商科系背景者所專長的領域。
  調查顯示,目前國內數位內容產業主要的專業人力需求包括 3D 遊戲設計實作、數位系統開發、 行動商務應用、 數位多媒體、數位行動Java 手機程式設計師、網路動畫創作設計、數位行銷企劃、數位內容產業行銷專案經理、多媒體FLASH設計、3D動畫廣告、行動娛樂應用技術、 May a3D 動畫進修、動畫電影特效後製整合、網路動畫創作設計、網路互動遊戲系統技術、數位典藏與網路互動技術應用、數位遊戲程式設計,完全創意網站設計、數位影音剪輯設計、創意多媒體光碟設計等。

資料來源:
數位內容產業推動服務網http://www.digitalcontent.org.tw

2010年10月13日 星期三

大家一起來學Google Maps

目前流行適地性服務或移動定位服務(Location-Based Service,LBS),希望能走到那可以服務到那,這需要GPS及Maps的兩項技術的支援,過去我們需要地理的圖資時,往往要付出相當大的金額才能取得,但Google把這項服務變成不用錢,Google也提供很多的API供我們使用,你可以拜訪Google Maps API 系列網站,這網站介紹六種API:
1. Maps JavaScript API

2. Maps API for Flash


3. Google Earth API



4. Static Maps API


5. Web 服務

6. Maps Data API

O Come, O Come Emmanuel (with Computer Graphics)

OpenGL 教學 #0a: Getting OpenGL Set Up on Windows

OpenGL一套二維和三維圖像跨程式語言、跨平台的編寫程式介面

OpenGL(Open Graphics Library)是一個跨程式語言、跨平台的編寫程式介面(Application programming interface)的規格,可用來生成二維、三維圖像。學習資源如下所示:
OpenGL官方網站
OpenGL中文教學網站
OpenGL程式俱樂部
OpenGL API文件
OpenGL遊戲展示影片:

OpenGL遊戲引擎介紹影片:

2010年10月12日 星期二

大家來學Blender為台灣動畫貢獻心力

Blender是一套自由軟體專門用在三維繪圖絢染軟體。在電腦繪圖中,渲染(Render)是指用軟體從模型生成影像的過程。蜘蛛俠2是第一部使用Blender所設計的專業影片。社員們可以在Blender官方網站下載Blender軟體,另有兩個中文教學網站:中文社群Iwantpass教學網站。看完下面兩部由Blender所設計的影片:Elephants Dream和Big Buck Bunny animation,相信您會忍不住地喜歡上Blender。



2010年10月10日 星期日

南開科技大學電腦與通訊工程系成立多媒體應用組預計民國100年招生

多媒體應用組的發展特色以電腦與通訊技術之應用為主,課程以互動多媒體網站及嵌入式系統結合網際網路(Internet)的應用進行規劃,例如:智慧型手機遊戲設計(Android Game)、車載多媒體定位服務(Google Map)、隨選多媒體影音服務(Vedio On Demand, VOD)等。