我試圖向量轉換爲CV ::墊,其中它是2D矩陣(640 * 480)具有3個通道的2D矩陣的每個元素的類型CV_32FC3(三個信道的每個分別指的x,y和z)。轉換矢量<cv::Point3f>到CV ::類型CV_32FC3的墊
n_rows = 480 and n_cols=640
我不知道爲什麼xyzMap = cv::Mat(xyzBuffer).reshape(3, 480);
訪問衝突異常
vector<cv::Point3f> xyzBuffer;
也,當我用另一種方法重塑結束:
cv::Mat xyzBuffMat = cv::Mat(xyzBuffer.size(), 1, CV_32FC3);
for (int i = 0; i < xyzBuffer.size(); i++) {
xyzBuffMat.at<float>(i, 0, 0) = xyzBuffer[i].x;
xyzBuffMat.at<float>(i, 0, 1) = xyzBuffer[i].y;
xyzBuffMat.at<float>(i, 0, 2) = xyzBuffer[i].z;
}
xyzMap = xyzBuffMat.reshape(3, 480);
顏色怪異通常意味着信道的順序錯誤。矢量中的順序是什麼? RGBRGBRGB ..? OpenCV的使用BGR排序,所以你可能需要一個'cvtColor(xyzMap,xyzMap,CV_RGB2BGR);'之後。請上傳示例圖像以獲取更多建議。 – Micka