我需要將Mat 8UC1 [0,255]的值替換爲cv :: Mat lookUpTable(1,256,CV_16UC1)的值;我檢查了這個OpenCV tutorial的一個解釋,它是最快的方法,但是,當Im檢查每個位置的LUT的分配值時,我只丟掉8位,所以我丟失了其他的8位。這是源代碼:openCV查找表16CU1
unsigned short int zDTableHexa[256]={0};
.... get the values...
cv::Mat lookUpTable(1, 256, CV_16UC1);
uchar* p = lookUpTable.data;
for(int i = 0; i < 256; i++){
p[i] = zDTableHexa[i];
cout<<(int)p[i]<<":"<<zDTableHexa[i]<<sizeof(p[i])<<":"<<sizeof(zDTableHexa[i])<<endl;
}
的打印結果是:
104:872
101:869
97:865
93:861
90:858
86 :854
83:851
80:848
76:844
73:841
70:838
66:834
63:831
當我在二進制檢查是僅僅第一8位。 據我所知,指針是UCHAR(8位),但我如何分配完整的值?
由於它的工作! – aburbanol