0
我試圖運行SiftGPU關於從相機抓取的OpenCV Mat中的幀,並且無法將Mat格式轉換爲SiftGPU採用的輸入格式。我沒有發現SiftGPU接受輸入的具體規範(在它的手冊中,它只是說一些數據指針)。任何人都成功實施了這個在OpenCV Mat上運行SiftGPU Mat
我試圖運行SiftGPU關於從相機抓取的OpenCV Mat中的幀,並且無法將Mat格式轉換爲SiftGPU採用的輸入格式。我沒有發現SiftGPU接受輸入的具體規範(在它的手冊中,它只是說一些數據指針)。任何人都成功實施了這個在OpenCV Mat上運行SiftGPU Mat
如果你還在intrested,你可以像這樣傳遞數據:
sift.RunSIFT(mat.cols, mat.rows, mat.data, GL_BGR, GL_UNSIGNED_BYTE);
如果你不想添加glew.h這些定義只是把這些代碼行
#define GL_UNSIGNED_BYTE 0x1401
#define GL_BGR 0x80E0
#define GL_BGRA 0x80E1
#define GL_RGB 0x1907
#define GL_RGBA 0x1908
我可以這樣分享我的代碼:
cv::Mat myMat = imread("../data/800-4.jpg");
int width = myMat.cols;
int height = myMat.rows;
unsigned char *data = (uchar*)myMat.data;//GL_RGBA
sift->RunSIFT(width, height, data, GL_RGB, GL_UNSIGNED_BYTE);