0
我需要創建一個CV ::墊從一個緩衝區,但我不希望的數據被共享,所以不能使用墊(高度,寬度,類型,數據)構造:操作cv :: Mat的內部緩衝區是否安全?
int data[100];
cv::Mat m;
m.create(10, 10, CV_32SC1); // allocate own buffer for m
for (size_t i = 0; i < 100; ++i)
{
reinterpret_cast<int*>(m.data)[i] = data[i];
}
我需要投入內部緩衝區(它總是uchar *),以便能夠直接複製我想要的類型(int在這種情況下)的數據,它似乎工作。但是,我記得文檔首選使用uchar *執行所有操作的方法,即將源緩衝區轉換爲uchar *並使用名爲stepWidth的參數來獲取uchar * -units中的正確偏移量。這樣做是否會遇到麻煩,或者是CV_32SC1類型的Mat的緩衝區,它只是int的緩衝區,並沒有什麼區別?
在我的情況下對「外來數據」的話題,在多方面的問題並不適用,所以我想我不必擔心。至於這個話題,我只在該頁面發現了一個'foreign',它適用於共享一個緩衝區的結構。不管怎樣,謝謝! – neuviemeporte 2012-03-14 08:20:18