Мне нужно заменить значение Mat 8UC1 [0,255] на значения cv :: Mat lookUpTable (1, 256, CV_16UC1); Я проверяю это OpenCV tutorial объяснение, которое является самым быстрым методом, однако, когда Im проверяет назначенные значения LUT в каждой позиции, im только sabing 8 бит, так что Im потерял остальные 8 бит. Это исходный код:openCV look up table for 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