我試圖找出2張圖像中的差異。場景:假設我有2張圖片,一張背景和另一張背景前面的人物,我想以這樣一種方式減去兩張圖片,以獲得人物的位置,即該程序是否可以檢測到該人站在哪裏,並將減去的圖像作爲輸出。OpenCV圖像處理
我設法得到的代碼是從相機拍攝兩張圖像並重新調整大小,並將兩張圖像轉換爲灰度。在此之後我想知道該怎麼做。我檢查了OpenCV提供的減法函數,但它將數組作爲輸入,所以我不知道如何進展。
我寫的代碼是:
cap>>frame; //gets the first image
cv::cvtColor(frame,frame,CV_RGB2GRAY); //converts it to gray scale
cv::resize(frame,frame,Size(30,30)); //re-sizes it
cap>>frame2;//gets the second image
cv::cvtColor(frame2,frame2,CV_RGB2GRAY); //converts it to gray scale
cv::resize(frame2,frame2,Size(30,30)); //re-sizes it
現在我簡單地使用像減函數:
cv::subtract(frame_gray,frame,frame);
還是我先辦理一些過濾器,然後用減函數?
_「它需要數組作爲輸入,所以我不知道如何進步」_圖像的內容不過是一個字節數組,對嗎?無論如何,你真的嘗試過用'cv :: subtract'做什麼嗎? – Rook 2012-07-10 10:27:20
不,當我看到文檔時,我只是在代碼中添加了減法語句作爲註釋。在減去圖像之前,我不需要任何濾鏡來處理圖像?我是否需要將圖像加載到內存中才減去它們?我在某處讀過,不知道我是否有必要。 – 2012-07-10 10:32:26
你也許應該搜索關於opencv圖像或背景減法的更多信息。例如,一個非常快速的搜索引起[相關的stackoverflow問題](http://stackoverflow.com/questions/9742591/opencv-issue-of-image-subtraction)。看看它是如何在其他地方完成的,並詢問是否卡住,而不是在嘗試任何事情之前求助於;-) – Rook 2012-07-10 10:39:28