一款功能強大的光碟管理及媒體收藏軟體[ 簡體 ] 牧童圈歌 ... 支援的數位相機RAW檔案格式包括:.bay, .bmq, .cam, .cr2, .crw, .cs1, .dc2, .dcr, .
dng, .icc, .k25, .kdc, .mos, .mrw, .nef, .orf, .pef, .raf, .raw, .srf, .thm 及.x3f。 http://cn.apolisoft.com/mcat.php
http://cn.apolisoft.com/download.php
一款功能強大的光碟管理及媒體收藏軟體[ 簡體 ]
最新版本 v1.8 (2005.4.15)下載完全安裝包 MCat_full.exe 3035 KB (2.96MB)
本軟體安裝包要求Windows Installer 2.0 及以上版本進行安裝。
Windows XP作業系統已自帶Windows Installer 2.0。
其他作業系統用戶如發現系統沒有裝Windows Installer 2.0,
可從微軟下載中心下載, Windows 2000/NT用戶可點此下載。
http://office.microsoft.com/home/office.aspx?assetid=FX01041742&displaylang=ZH-CN Windows 98/Me用戶可點此下載。 介紹他 最主要原因 因為他可以知道 所用的圖片來源資訊 哈哈 SRF 檔案的應用
http://phi.sinica.edu.tw/aspac/reports/96/96001/test_plan_sec_2.html
IDL Testing Plan Section 2 2. 從語言的角度
由於IDL提供語言的功能,所以測試可以由程式語言的角度來看其功能
特性。而由一般程式語言的角度來看IDL又可以分成: 資料類別
運算子與表示式
指令集
檔案資料的輸出與輸入
程式與函數
Scope
IDL的語言形式與FORTRAN語言較為相近,是一種高階形式的程式語
言。可是他也提供一般語言該有的資料類別、運算子與指令、檔案資料
的輸出與輸入、副程式與函數等等。 2.1. 資料類別
IDL的資料類別有八種: byte
integer
long word
floating
double
complex
structure
IDL提供了一般語言該有的資料類別,這一點與Matlab是相當不同的,
因為Matlab的基本資料類別為矩陣,雖說也有整數、實數、複數、字
串等資料類別,但是所有變數均以矩陣的形態存在。以下是一個簡單
的測試例子: in IDL:
IDL> a=123
IDL> print,a
123
IDL> b=[1,2,3]
IDL> print,b
1 2 3
IDL> c="the string"
IDL> print,c
the string
IDL> help,a,b,c
A INT = 123
B INT = Array(3)
C STRING = 'the string'
IDL> print,c(2)
% Attempt to subscript C with is out of range.
% Execution halted at $MAIN$ . in Matlab:
>> a=123
a =
123
>> b=[1,2,3]
b =
1 2 3
>> c='the string'
c =
the string >> whos
Name Size Elements Bytes Density Complex
a 1 by 1 1 8 Full No
b 1 by 3 3 24 Full No
c 1 by 10 10 80 Full No
Grand total is 14 elements using 112 bytes >> c(2)
ans =
h 2.2. 運算子與表示式
IDL中變數之間可以利用運算子與函數等,結合成複雜的表示式格式格
式。IDL中運算子的種類有幾類: 加減乘除等數學運算子
大小關係運算子
布林運算子
這些運算子的用法基本上與其他程式語言沒有太大的不同。有一點不同
的是在定義真假值上,IDL在不同的資料類別定義真假值為: 整數上定義奇數為真,偶數為假。
實數及複數上定義非零值為真,零值為假。複數中的虛數部份不算。
字串上定義非空字串為真,空字串為假。
在科學計算程式的功能中,數學運算的能力最受重識,IDL的數學運算
主要以Numerical Recipes為主。IDL的陣列儲存方式剛好與矩陣的儲存
方式相反,所以在IDL中要做矩陣的運算,要先將陣列轉置後再行運算
,並將結果轉置後才是答案,而Matlab因為所有的資料均以矩陣的形式
儲存,所以在做矩陣的運算時不用如此麻煩。以下是一個簡單的測試例
子: IDL> matrix1=[[1,2,3],[2,-1,2]]
IDL> matrix2=[[1,3],[0,1],[1,1]]
IDL> print,matrix1
1 2 3
2 -1 2
IDL> print,matrix2
1 3
0 1
1 1
IDL> result=transpose(transpose(matrix1) # transpose(matrix2))
IDL> print,result
4 8
4 7
IDL> result=matrix1 # matrix2
IDL> print,result
7 -1 9
2 -1 2
3 1 5 2.3. 指令集
一般程式語言的指令集應至少包含有資料的指定、迴圈控制、狀況判斷
、函數的定義與呼叫,IDL的指令集亦包含了一般語言最基本的形態: assignment
Block
Common Block Definition
Case
For
Goto
If
repeat
while
Function Definition
Procedure Call
Procedure Definition
有這些基本的功能,可以很容易地在IDL中寫程式控制計算流程。 2.4. 檔案資料的輸出與輸入
由測試檔案資料的輸出與輸入,可以明瞭一套軟體對外聯結最基本的功
能。 2.4.1. 格式化與非格式化
格式化與非格式化的檔案輸出與輸入,應該是大部分語言最基本的功能
。沒有例外IDL亦提供了格式化與非格式化兩種檔案資料的輸出與輸入
,其中格式化的格式與FORTRAN語言相當類似。 2.4.2. 科學計算檔案
與Matlab不同的,IDL另外提供了所謂的科學計算檔案,包括三種格式: Common Data Format
Network Common Data Format
Hierarchical Data Format
可是並非所有平台的IDL版本均支援上述三種格式,詳細請參照[3]。 2.4.3. 標準影像檔案
IDL的Users' Library提供了一些標準影像檔案的輸出與輸入,例如GIF、
JPEG、TIFF、BMP、PICT、SRF、WAVE等格式。另外XWD、X11
Bitmap、Interfile三種格式只提供輸入的功能。因此IDL在影像檔案處
理上提供比Matlab更多的選則性。 2.5. 程式與函數
IDL程式與函數的宣告方式分別為:
PRO procedure_name, argument1,argument2 ,...
...
RETURN
END FUNCTION function_name, argument1, argument2,...
...
RETURN
END 宣告方式沒有特別地不一樣,但是要注意的一點是如果在一個檔案中宣
告定義了副程式、函數與主程式,則主程式的宣告區塊要置於最後,這
是因為在IDL中變數是不用先行宣告,如果主程式中用到副程式或函數
,而副程式或函數沒有先行宣告定義,IDL會以為那是變數的。例如對
A = XYZ(6) 而言,IDL是很難分辨 XYZ 是函數或是陣列。 2.5.1. 引數傳遞與呼叫方式
IDL副程式或函數的引數傳遞的方式,是因資料類別不同而分成傳遞
數值以及傳遞位址: 表示式、定數、系統變數、陣列等是傳遞數值的方式。
變數是傳遞位址的方式。
分辨引數傳遞的方式是很重要的,因為引數以傳遞數值的方式傳入副
程式或函數中,如果對其做任何的更動,是無法傳回原呼叫程式的,
只有以傳遞位址的方式才可以。 另外IDL可以用遞迴的方式呼叫副程式或函數。 2.5.2. 錯誤處理
錯誤的處理在程式環境中是非常重要的,因為他可以提供除錯的資料。
IDL提供三種錯誤處理的功能: ON_ERROR
ON_IOERROR
CATCH
其中的CATCH與C語言中的setjmp/longjmp功能較為接近。這三種錯誤
處理的次序如下圖:
2.6. Scope
IDL的變數scope亦分成global及local兩種。若變數無特別的宣告時,變
數是屬於local的,若變數以common block宣告時,則才是global變數。
但是系統變數是屬於global,無需特別的宣告。 另外IDL對於程式或函數的尋找先後次序是,先找的是IDL build-in routines,再來是IDL Users' library,最後才是記憶體中的程式或函數。 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=45063 一般照片的答案就也可類似引用jpeg 的資訊 庵要的是 解 SRF
發表人 - conundrum 於 2005/04/24 02:40:48