私の質問は、私が現在開発中の C++ フレームワークで効率をスコープすることです。コンテキスト: サイズが等しい 2 つの配列があります。そのうちの 1 つは検出されたポイント クラウドからのポイント座標を含み、もう 1 つは対応するカラー値を含みます。カラー値のインデックスがポイント座標と正確に一致しないため、カラー配列をスケーリングする必要があるという問題が発生しました。
システムの効率を維持するために、次の「ハック」を使用して浮動小数点演算を回避し、カラー配列インデックスをスケーリングするために、shifted_row_index が x よりも遅く実行されるようにすることをお勧めしました。残念ながら、現時点ではアドバイザーを利用できません。この場合、このソリューションが機能する理由がわかりません。
誰かが私にそれを説明できるなら、それはあなたのいいところです。前もって感謝します!
int shifted_row_index = (RGB_OFFSET_X << 8);
for (int x = 0, xmax = g_depthMD.XRes(); x < xmax; x += raster_width)
{
shifted_row_index += RGB_SCALE_FACTOR_X;
int rowindex = shifted_row_index >> 8;
rowindex = std::max(std::min(rowindex, (int)(xmax - 1)), 0);
color_pointer[0] = pImageRow[rowindex].nRed;
//....
}