C++ でいくつかの画像処理作業を行っています。このために、私は自分の仕事に適していると感じるCImg.hライブラリを使用しています。
これは、画像を読み取って表示するだけの、私が書いた小さなコードです。
#include "../CImg.h"
#include "iostream"
using namespace std;
using namespace cimg_library;
int main(int argc,char**argv)
{
CImg<unsigned char> img(argv[1]);
img.display();
return 0;
}
このコードを入力としてlena.pgmを指定すると、画像が表示されます。たとえば、同じディレクトリに存在する ddnl.pgm など、他のイメージを指定した場合、「セグメンテーション違反」が発生します。
gdb を使用してコードを実行すると、次のような出力が得られます。
プログラム受信信号 SIGSEGV、セグメンテーション違反。
/lib/libc.so.6 からの strlen ()
の 0x009823a3 .i386 libXdmcp-1.0.2-6.fc10.i386 libgcc-4.3.2-7.i386 libstdc++-4.3.2-7.i386 libxcb-1.1.91-5.fc10.i386
誰かが私に何が問題なのか教えてもらえますか? そしてそれを解決する方法。
皆さん、ありがとうございました