8
在我的程序中我有從相機拍攝圖像的功能,應該將所有數據打包在OpenCV Mat
結構中。從相機我得到寬度,高度和unsigned char*
到圖像緩衝區。我的問題是我如何從這些數據創建Mat,如果我有全局Mat變量。 Mat結構的類型是CV_8UC1。opencv從相機數據創建墊
Mat image_;
function takePhoto() {
unsigned int width = getWidthOfPhoto();
unsinged int height = getHeightOfPhoto();
unsinged char* dataBuffer = getBufferOfPhoto();
Mat image(Size(width, height), CV_8UC1, dataBuffer, Mat::AUTO_STEP);
printf("width: %u\n", image.size().width);
printf("height: %u\n", image.size().height);
image_.create(Size(image.size().width, image.size().height), CV_8UC1);
image_ = image.clone();
printf("width: %u\n", image_.size().width);
printf("height: %u\n", image_.size().height);
}
當我測試的程序,我馬上width
和image
height
,但width
和我的全球墊的height
image_
是0
。如何將數據正確放入我的全球Mat
變量中?
謝謝。
嗨Karlphilip,非常感謝你爲stackoverflow和幫助我們。即時通訊新的OpenCV,並找到你的答案相當有用的項目,我現在正在工作。我有一個快速的問題,有什麼區別:cv :: Mat和cvMat和cvCreateMat()? – user261002
'cv :: Mat'是OpenCV的C++接口的Mat類型。 'cvMat'用於C接口。 'cvCreateMat()'在C接口中創建一個'cvMat'。我們不要再劫持這個線程,如果你有問題,你可以自由地在新線程中提問。回頭見。 – karlphillip