画像の入出力 (非CUDA)
提供: メモ帳@fmaj7b5.info
いきなり脇道。
CUDAは画像処理が速くなるというウワサなので、画像の読み書きがいるなぁ、と。 適当なライブラリを拾ってきてもいいけど、インストールやらリンクやら説明するのが面倒なので最低限のものを作成。
作るのは手書きもできる画像フォーマットNetpbmより、グレイスケール画像のpgmの入出力を書いてみた。 以下は使用例。
imageio_test.cpp:
#include "Image.h" #include "ImageIO.h" using namespace FM7b5; int _tmain(int argc, _TCHAR* argv[]) { ImageGray image; try { image = loadPGM("..\\img\\sine.pgm"); } catch (std::exception& e) { std::cout << e.what() << std::endl; return -1; } /* invert pixel values */ ImageGray out(image.width(), image.height()); for (size_t h = 0; h < image.height(); ++h) { for (size_t w = 0; w < image.width(); ++w) { out(w, h) = 255 - image(w, h); } } savePNM(out, "result.pgm"); return 0; }
loadなんちゃらで画像が読めてsaveなんちゃらで保存。(x, y)の形式で画素にアクセスできる。それだけ。