線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2633
推到 Plurk!
推到 Facebook!

如何快速的判斷兩個影像區塊是否相同

答題得分者是:bugmans
17kobe
初階會員


發表:86
回覆:73
積分:31
註冊:2007-07-30

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-02-20 18:54:15 IP:60.250.xxx.xxx 訂閱

[code delphi]
function isSameTheBmp(TheNewBmp, TheOldBmp: TBitmap): Boolean;
var
i,j : integer; //暫存長寬目前索引用
OldP24,NewP24 : PInteger; //24位元顏色
begin
//Result:=False;
For i:=0 to TheOldBmp.Height-1 do
begin
OldP24:=TheOldBmp.ScanLine[i];//獲取掃瞄線--old
NewP24:=TheNewBmp.ScanLine[i];//獲取掃瞄線--New
For j:=0 to TheOldBmp.Width-1 do
begin
if OldP24^ <> NewP24^ then
begin
Result:=False;
Exit;
end;
inc(OldP24);
inc(NewP24);
end;
end;
//恢復原來的像素顏色位格式
Result:=True;
end;

[/code]
上面程式碼是輸入兩個切割好的bitmap(我是切成16*16),但是一張圖有3000多個(16*16)要比對,而上面程式碼的寫法不太好,若相同的話,則要比較16*16個if後才知道,這樣會造成cpu飆高的問題,不知道有沒有人有更好的方式來做。請求各位的幫忙。
friendlly
高階會員


發表:22
回覆:144
積分:103
註冊:2003-04-08

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-02-21 13:31:35 IP:61.64.xxx.xxx 訂閱
辨識的演算法在商業軟體與自行開發的差異.
一般就是效率與穩定度...自己寫當然也可以達到但是商用的更快也更穩定只是要用錢買.
這也是我們長久經驗下改變成用商業的Library若有小地方再自己codeing .....

如果你有興趣可以發訊息給我..我可以介紹較容易使用的Library....

比對一張16*16 圖檔....測試約不到10msec..
bugmans
高階會員


發表:95
回覆:322
積分:188
註冊:2003-04-12

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-02-23 10:45:25 IP:125.225.xxx.xxx 未訂閱
比對一張16*16 圖檔....測試約不到10msec..
怎麼和這篇測試的結果有差異,是單位不同嗎
http://delphi.ktop.com.tw/board.php?cid=168&fid=921&tid=89257#6
測試影像:兩張640*480 24bpp RGB 影像相減取絕對值並取臨界值後,存成另一張640*480 24bpp RGB
Project Options / Compiler : Full Debug
ciy's code:16~19 ms
For-loop:6~7 ms
While-loop : 6~7 ms
17kobe
初階會員


發表:86
回覆:73
積分:31
註冊:2007-07-30

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-03-03 17:28:34 IP:60.250.xxx.xxx 訂閱
我的都是16*16的小區塊,有很多個在比較,每個都是一對一個小區塊比較。好像相減後,時間花更長了。該怎麼辦呢。
目前比較亂的做法就是4*4只比對一個點。不知道還有沒有快速的方法

===================引 用 bugmans 文 章===================
比對一張16*16 圖檔....測試約不到10msec..
怎麼和這篇測試的結果有差異,是單位不同嗎
http://delphi.ktop.com.tw/board.php?cid=168&fid=921&tid=89257#6
測試影像:兩張640*480 24bpp RGB 影像相減取絕對值並取臨界值後,存成另一張640*480 24bpp RGB
Project Options / Compiler : Full Debug
ciy's code:16~19 ms
For-loop:6~7 ms
While-loop : 6~7 ms
編輯記錄
17kobe 重新編輯於 2008-03-03 18:04:29, 註解 無‧
系統時間:2017-10-22 5:25:59
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!