2013-11-04 17 views
1

我是圖像處理和opencv的新手。我有兩個圖像。我想在圖像2中找到與圖像1對應的值,然後顯示它。 opencv中是否有函數來查找圖像之間的對應值?opencv/C++中兩個圖像之間的相應值

在此先感謝。

+0

你的意思是「相對值」是什麼意思?兩個圖像中的RGB值相同?或者相同的結構?請告訴我們更多關於您的問題和/或爲您的問題添加示例圖片。 – Mailerdaimon

+0

兩個圖像中的相同值。它們都是灰度。 – user2758510

+0

我有兩個灰度圖像。 我想找到圖像2中的所有值,這些值對應於圖像1中的非零值,然後我想要顯示它。 – user2758510

回答

1

您可以對image1進行閾值限制,以使您想要的所有值均爲1,其他所有值均爲0

比你multiplyimage1image2

cv::multiply(image1, image2, result, scale, dtype) 

這將返回圖像比從image2零被標記在image1更大的所有值。

1

很難說,沒有看你的圖片。這是一個在計算機視覺方面研究得很好的問題,OpenCV包含幾種算法。你正在看的問題可以很容易或很難,取決於:

  • 你的照片,是正常的圖像?只是形狀?二進制?
  • 哪裏上的圖像謊言對應的像素
  • 的速度有多快,你需要它來運行
  • 有多大變化的圖像之間,是完全一樣的像素值?
  • 有沒有相機動作?
  • 照明有變化嗎?

您可以從OpenCV中的stereo matchingoptical flow開始。

+0

感謝您的積分。實際上,我不確定我是否可以發佈圖像。我需要先問我的教授。我現在可以說我正在研究深度圖像,我正在嘗試找到一種方法來減少這類數據中的噪聲。我可以有你的電子郵件地址嗎? – user2758510

+0

即使簡單說明,攝像機的移動如何影響選擇適當的閾值,您是否可以解釋? 在此先感謝。 – user2758510

4
Mat corrVals; 
bitwise_and(image2, image1>0, corrVals); 

圖像1> 0將創建值0和255臨時二進制圖像比你需要的唯一的事情就是你的圖像的像素,並存儲結果之間執行與操作的地方。這由bitwise_and完成。

這與@Mailerdaimon建議的方法類似,但使用更便宜的操作。

+0

+1這確實更好;),謝謝! – Mailerdaimon

+0

太棒了!非常感謝。 – user2758510

+0

不客氣。 –