我對一張影像的每一個pixel都做統計圖~但是卻畫不出來 |
尚未結案
|
dragonhippopdc
一般會員 發表:45 回覆:51 積分:19 註冊:2005-01-15 發送簡訊給我 |
各位大大~我對一張影像的每一個pixel的rgb都做統計圖來累加它的值
但是卻畫不出來~不知那裡有誤~希望各位大大能幫我找一下
這是我的code
//------------------------------------------------------------------- #include發表人 - dragonhippopdc 於 2005/02/14 19:52:59 |
JerryKuo
版主 發表:42 回覆:571 積分:322 註冊:2003-03-10 發送簡訊給我 |
發表程式請參考版規說明
http://delphi.ktop.com.tw/topic.php?TOPIC_ID=47262 [code]
// BCB, Delphi 的程式碼
[/code] 敬請合作
|
dragonhippopdc
一般會員 發表:45 回覆:51 積分:19 註冊:2005-01-15 發送簡訊給我 |
|
dragonhippopdc
一般會員 發表:45 回覆:51 積分:19 註冊:2005-01-15 發送簡訊給我 |
我發現我貼的code有點寫錯~我現在修正了一下但是還是有問題
各位大大~假設我一段320*240的影像~而我想對每一個frame的每一個pixel的rgb的值做累加請問我貼的這段code那裡出了問題呢~為什麼我一執行電腦的記憶體就被吃光然後死當了~
//------------------------------------------------------------------- #include |
m58610
初階會員 發表:22 回覆:83 積分:36 註冊:2003-09-07 發送簡訊給我 |
|
richtop
資深會員 發表:122 回覆:646 積分:468 註冊:2003-06-10 發送簡訊給我 |
dragonhippopdc 您好:
引言: 我發現我貼的code有點寫錯~我現在修正了一下但是還是有問題 各位大大~假設我一段320*240的影像~而我想對每一個frame的每一個pixel的rgb的值做累加請問我貼的這段code那裡出了問題呢~為什麼我一執行電腦的記憶體就被吃光然後死當了~誠如 m58610 所提到的,在位置的指定上可以修改如上。 可以試著用下列方式來降低陣列的大小: 1.如果可以先將影像轉為灰階,則可以省下三分之二的陣列記憶體。 2.如果frame的數目小於256,則可試著將int改為unsigned char。 3.萬一您要的是彩色的影像處理,且該段影片不是即時的,則可以試著將影像分成若干塊,再依序對其中的每一塊做統計,統計的結果先存在檔案中,最後再連結在一起。 以上建議,供您參考,試試看是否適用於您的問題。 RichTop 敬上 =====***** 把數學當工具,可以解決問題;將數學變能力,能夠發現並解決問題! =====#####//------------------------------------------------------------------- #include |
dragonhippopdc
一般會員 發表:45 回覆:51 積分:19 註冊:2005-01-15 發送簡訊給我 |
|
dragonhippopdc
一般會員 發表:45 回覆:51 積分:19 註冊:2005-01-15 發送簡訊給我 |
我改成了richtop大大所說的如此但是一compiler卻發生如我貼的圖的錯誤訊息~請問為何會這樣呢~?
//--------------------------------------------------------------------------- #include |
richtop
資深會員 發表:122 回覆:646 積分:468 註冊:2003-06-10 發送簡訊給我 |
|
dragonhippopdc
一般會員 發表:45 回覆:51 積分:19 註冊:2005-01-15 發送簡訊給我 |
|
m58610
初階會員 發表:22 回覆:83 積分:36 註冊:2003-09-07 發送簡訊給我 |
|
richtop
資深會員 發表:122 回覆:646 積分:468 註冊:2003-06-10 發送簡訊給我 |
dragonhippopdc 您好: 今早突然想到可以用宣告動態記憶體方式來取得大的記憶體區塊。試了一下,可以!剛好 m58610 大大也提到了。
底下是簡單測試碼請參考。如果要弄成三維的亦可,不過會比較複雜。
建議是採用一維的陣列,不過存放資料的順序就要您自己來決定了。
我個人的建議是:除非此法為唯一且必須,否則還是用相對少耗用資源的方式,減少出錯並增加成功的機率。
您再試試吧!
void __fastcall TForm1::Button1Click(TObject *Sender) { unsigned char *rgb = new unsigned char[3*ImageHeight*ImageWidth*256*40]; // It works! if ( rgb==NULL ) ShowMessage("Memory allocation error!"); else ShowMessage("Memory allocation success!"); if ( rgb!=NULL ) delete [] rgb; }RichTop 敬上 =====***** 把數學當工具,可以解決問題;將數學變能力,能夠發現並解決問題! =====##### |
dragonhippopdc
一般會員 發表:45 回覆:51 積分:19 註冊:2005-01-15 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |