おそらくnoobの質問です。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);
...
しかし、CImg メソッドの 99% は、'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(...);