作者gmuooo (Miraculous)
看板C_and_CPP
標題Re: [問題] 函式內的動態值傳回使用
時間Fri Apr 16 17:51:33 2010
※ 引述《autoupdate (生烏龍茶)》之銘言:
: -----------------
: 大概流程圖
: 攝影機開著(一直開著)==>抓你的臉,並標記臉部位置圓圈==copy圓圈位置=
: ==>到另外一張圖
: ------------------
關於這部份,想要先確認你的目的,首先在複製臉部位置的圓圈,
照你的意思,是要把圓圈所罩住的資料轉移到另外一張大小的影像,
但是另外一張影像僅只存放臉部資訊?
如果是這樣,那只需要修改
void detect_and_draw( IplImage *img )
新增:一張和img大小相同的影像,利用cvCreateImagae
利用:cvZero將img初始化
新增:建立新的ShowImage視窗
在偵測完原img影像後,取得紀錄的center和半徑
利用cvGet2D以及cvSet2D以及center與半徑資訊
對該img影像進行特定區域複製,利用迴圈,設定新的影像資訊
例:
CvScalar val;
for(y = center.y - 半徑.y ; y < center.y + 半徑.y ; y++)
{
for(x = center.x - 半徑.x ; x < center.x + 半徑.x ; x++)
{
val = cvGet2D(img, y, x);
cvSet2D(newImg, y, x, val);
}
}
以上程式碼皆為例子。關於函式使用請參考OpenCV wiki
最後顯示
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.124.182.9
推 autoupdate:我只想擷取圈圈那個部分到另外一張圖去,人臉就不用了 04/16 20:44
→ autoupdate:謝謝你提供想法 04/16 20:45