可能是菜鸟问题。我希望使用 CImg 库对图像进行一些处理。它们中的一些可能是(8 位)和其中一些(16 位)的类型。不幸的是,在用户不选择要处理的文件之前,我不知道数据的类型。当然我可以这样做:
...
CImg <unsigned char> img_unisgned_char;
CImg <unsigned short> img_unisgned_short;
...
if (user_pick_8bit) img_unisgned_char.load_raw(fname,img_size_x,img_size_y);
if (user_pick_16bit) img_unisgned_short.load_raw(fname,img_size_x,img_size_y);
...
但是 99% 的 CImg 方法对于“unsigned char”、“int”或“float”类型(例如“load_raw”或“blur”)看起来完全相同。有什么方法可以制作 - 我不知道 - 指针?- 所以当用户选择文件时,我可以制作魔法:
if (user_pick_8_bit) img = img_unisgned_char;
if (user_pick_16bit) img = img_unisgned_short;
...
//now no mother of what type is picked up by user I simply make:
img.load_raw(...);