Mat 内のすべてのピクセルを手動で変更しようとしています。
簡単にするために、各ピクセルを黒くしたいとしましょう。私は次の方法を使用しています:
for (int i = 0; i < imageToWorkWith.rows; i++) {
for (int j = 0; j < imageToWorkWith.cols; j++) {
imageToWorkWith.at<cv::Vec3b>(i,j) = cv::Vec3b(0,0,0);
}
}
論理的には、これは行/列のすべての可能な組み合わせを読み取るため、マット内のすべてのピクセルを処理する必要があるようです。
残念ながら、これは機能しません。すべての画像について、列の「チャンク」がありません。たとえば、この画像をロードする場合:
結果は次のとおりです:
この不足している「チャンク」は、使用する画像に関係なく同じサイズです。その理由が理解できないようです。「at」機能の行/列の順序が(行、列)であることは知っていますが、キックのためにそれらを切り替えてみましたが、もちろん結果はさらに悪いです。
ここで何が欠けていますか?すべての行/列をループするだけでは十分ではありませんか?