影像相減二值化 |
答題得分者是:istillloving
|
dmjohnny
一般會員 發表:3 回覆:9 積分:2 註冊:2008-10-01 發送簡訊給我 |
我最近嘗試用線在這張FRAME去減上一張FRAME
但是影像相減完後做二值化的時候卻只有上面一小塊有二值化到其他地方都是白的 請問該怎麼解決這個問題? 以下是我做影像相減的程式碼 [code cpp] void frame_diff(int *f1,int *f,int w,int h,int *g) { int i,j; int red,green,blue; int gray; for(j=0; j for(i=0; i //相鄰影像相減 g[i*3 j*w*3]=f[i*3 j*w*3]-f1[i*3 j*w*3]; g[i*3 j*w*3 1]=f[i*3 j*w*3 1]-f1[i*3 j*w*3 1]; g[i*3 j*w*3 2]=f[i*3 j*w*3 2]-f1[i*3 j*w*3 2]; //轉灰階 blue = f[i*3 j*w*3]; green = f[i*3 j*w*3 1]; red = f[i*3 j*w*3 2]; gray = 0.299*red 0.587*green 0.114*blue; g[i*3 j*w*3] = gray; g[i*3 j*w*3 1] = gray; g[i*3 j*w*3 2] = gray; //二值化 if(g[i*3 j*w*3]<10) { g[i*3 j*w*3] = 0; g[i*3 j*w*3 1] = 0; g[i*3 j*w*3 2] = 0; } else { g[i*3 j*w*3] = 255; g[i*3 j*w*3 1] = 255; g[i*3 j*w*3 2] = 255; } } } } [/code] |
istillloving
高階會員 發表:33 回覆:182 積分:183 註冊:2008-10-09 發送簡訊給我 |
|
dmjohnny
一般會員 發表:3 回覆:9 積分:2 註冊:2008-10-01 發送簡訊給我 |
|
istillloving
高階會員 發表:33 回覆:182 積分:183 註冊:2008-10-09 發送簡訊給我 |
|
dmjohnny
一般會員 發表:3 回覆:9 積分:2 註冊:2008-10-01 發送簡訊給我 |
[code cpp] if(f1!=NULL) { frame_diff(f1,f,w,h,g); } delete [] f1; f1=f; array2bmp(g,w,h,pBitmap); bmp_disp(pBitmap,Image2); Data ; if(Data == 300) { //Timer1->Enabled = false; Data = 0; } [/code] 上述那段程式碼就是 如果我的影像大於一張我就進入做影像相減 之後我就把下一次讀進的圖片丟進f1中 data是我的檔名,檔名已經事先修改成0~299 因為我不太懂您的意思 如果有需要的話我在把我整隻程式上傳上來 |
istillloving
高階會員 發表:33 回覆:182 積分:183 註冊:2008-10-09 發送簡訊給我 |
|
dmjohnny
一般會員 發表:3 回覆:9 積分:2 註冊:2008-10-01 發送簡訊給我 |
[code cpp] int p; int *fn,*f1; f1 = new int[w*h*3]; fn = new int[w*h*3]; g = new int[w*h*3]; AnsiString FileName = IntToStr(Data) ".bmp"; Image1->Picture->LoadFromFile(FileName); f = bmp2array(Image1->Picture->Bitmap,&w,&h); copy(f,w,h,fn); Data ; [/code] 會給她W*H*3的是因為是彩色圖片 |
istillloving
高階會員 發表:33 回覆:182 積分:183 註冊:2008-10-09 發送簡訊給我 |
bmp2array 這個你是call函式的嗎
===================引 用 dmjohnny 文 章=================== [code cpp] int p; int *fn,*f1; f1 = new int[w*h*3]; fn = new int[w*h*3]; g = new int[w*h*3]; AnsiString FileName = IntToStr(Data) ".bmp"; Image1->Picture->LoadFromFile(FileName); f = bmp2array(Image1->Picture->Bitmap,&w,&h); copy(f,w,h,fn); Data ; [/code] 會給她W*H*3的是因為是彩色圖片
------
恩... |
dmjohnny
一般會員 發表:3 回覆:9 積分:2 註冊:2008-10-01 發送簡訊給我 |
|
istillloving
高階會員 發表:33 回覆:182 積分:183 註冊:2008-10-09 發送簡訊給我 |
|
dmjohnny
一般會員 發表:3 回覆:9 積分:2 註冊:2008-10-01 發送簡訊給我 |
|
istillloving
高階會員 發表:33 回覆:182 積分:183 註冊:2008-10-09 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |