影像相減結果 |
答題得分者是:JerryKuo
|
jiaching
一般會員 發表:21 回覆:21 積分:8 註冊:2003-07-05 發送簡訊給我 |
|
Brian77
中階會員 發表:8 回覆:114 積分:94 註冊:2002-05-17 發送簡訊給我 |
|
JerryKuo
版主 發表:42 回覆:571 積分:322 註冊:2003-03-10 發送簡訊給我 |
|
jiaching
一般會員 發表:21 回覆:21 積分:8 註冊:2003-07-05 發送簡訊給我 |
|
jiaching
一般會員 發表:21 回覆:21 積分:8 註冊:2003-07-05 發送簡訊給我 |
我試了一下 我是採用RGB 先轉YCRCB 在做相減 這樣可以嗎
// 其中ptr1指的是背景圖 ptr2指的是非背景圖 b1=ptr1[i*3]; g1=ptr1[i*3+1]; r1=ptr1[i*3+2]; b2=ptr2[i*3]; g2=ptr2[i*3+1]; r2=ptr2[i*3+2]; y1=0.257*r1 +0.504*g1+0.098*b1+16; cr1=0.439*r1-0.368*g1-0.071*b1+128; cb1=-0.148*r1-0.291*g1+0.439*b1+128; y2=0.257*r2 +0.504*g2+0.098*b2+16; cr2=0.439*r2-0.368*g2-0.071*b2+128; cb2=-0.148*r2-0.291*g2+0.439*b2+128; //if(cr1==cr2&&cb1=cb2) 這個地方是這樣寫嗎 還是有錯? //以下是只用了 cr去判斷而已 因為上面那個if 好像有一點問題 不太會改 if(cr1==cr2) { ptr1[i*3]=b2; ptr1[i*3+1]=g2; ptr1[i*3+2]=r2; } else { ptr1[i*3]=255; ptr1[i*3+1]=255; ptr1[i*3+2]=255; } |
JerryKuo
版主 發表:42 回覆:571 積分:322 註冊:2003-03-10 發送簡訊給我 |
你好: 以下是我想法給你參考:
1.你的目的應該是取出人臉,而Y Cb Cr只是用來分開前景背景的依據,並不定
三個值都要做比較,一般都是以Y值(亮度)做為比對的依據,Cb,Cr(彩度)比較
不常被使用,代表物理意義薄弱。
所以將比對出的Y值差△y,當作相似依據,(也就show3)
△y = 0 → (x,y)相似(x',y'),視為背景,此點清除 △y ≠ 0 → (x,y)不相似(x',y'),視為前景,此點保留保留意指保留原始像素值,而不是Y值。 不知道你是不是想要這樣做呢? |
jiaching
一般會員 發表:21 回覆:21 積分:8 註冊:2003-07-05 發送簡訊給我 |
|
JerryKuo
版主 發表:42 回覆:571 積分:322 註冊:2003-03-10 發送簡訊給我 |
引言: 感謝JerryKuo版主~~~ 我以下的程式碼是可以run出來 這樣寫應該對吧~~~ 其中threshold5是我的scrollbar的position b2 g2 r2是非背景圖的像素值呃~~對不對?不要問我吧,題目又不是我出的 又不能幫你打個勾,如果你覺得可以就可以囉。int delta=y1-y2; if(delta>threshold5) { ptr1[i*3]=b2; ptr1[i*3 1]=g2; ptr1[i*3 2]=r2; } else { ptr1[i*3]=255; ptr1[i*3 1]=255; ptr1[i*3 2]=255; } |
jiaching
一般會員 發表:21 回覆:21 積分:8 註冊:2003-07-05 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |