OpenInventor ファイルを PCD ファイルに変換する小さなプログラムを作成しています。そのために、OpenInventor ファイルと JPEG 画像の 2 つのファイルを入力します。テクスチャ座標は、0.0 ~ 1.0 の浮動小数点値です。
OpenCVを使ってRGB値を抽出して10進数で返すのですが、以下の関数がうまく動かないようです...
float get_color(cv::Mat img, float x, float y) {
int i = x*img.cols;
int j = y*img.rows;
unsigned char R = img.ptr<unsigned char>(j)[3*i];
unsigned char G = img.ptr<unsigned char>(j)[3*i+1];
unsigned char B = img.ptr<unsigned char>(j)[3*i+2];
return R*pow(16,4) +
G*pow(16,2) +
B;
}
で画像をロードします
cv::imread("filename.jpg", CV_LOAD_IMAGE_COLOR).