私はビットマップイメージを変更するプログラムを扱っています。私がしたいのは、画像を180度反転させることですが、私が何をしていても、ヘッダーを破棄したり、セグメンテーション違反を起こしたり、ぼやけてしまいます。ピクセルはピクセルデータを保持し、各配列要素はピクセルの個々の色である。ここでは画像を反転のための私のコードは次のとおりです。イメージを反転する
(その後、各列を逆にする計画)の各行を逆にすることにより
for(r = 0; r < 1; r++) {
j = ((WIDTH * 3) - 3);
i = 0;
while(i < j) {
memmove(temp, &pixels[r][i], 3);
memmove(&pixels[r][i], &pixels[r][j], 3);
memmove(&pixels[r][j], temp, 3);
i += 3;
j -= 3;
}
}
それを180度
unsigned char pixels2[HEIGHT][WIDTH * 3];
for(r = 0; r < HEIGHT; r++) {
for(c = 0; c < (WIDTH * 3) - 3; c += 3) {
memmove(&pixels2[HEIGHT - r][(WIDTH * 3) - c], &pixels[r][c], 1);
}
}
を回転させることによって、私は私が破壊していますことを知っていますメモリは何とか私の人生のために私はどのように把握することはできません。どんな助けもありがとう。ここでの問題の
あなたはどのような画像フォーマットを操作していますか?このRGBはR、G、Bの独立したプレーンのようにトリプレットバイトまたはRGBのようですか? 16ビット形式のRGBAまたはRGBですか? – tadman
おそらく[OpenCV](http://opencv.org/)というライブラリを使用することを検討してください。デバッガを使用してください –
これはBGRです。各ピクセルの色は符号なしの文字として保存されます –