- C/C++の宿題片付けます 168代目
341 :デフォルトの名無しさん[sage]:2015/01/05(月) 18:30:50.87 ID:ylPnsu7C - [1] 授業単元: 画像処理
[2] 問題文: pgm画像を読み込んで濃度ヒストグラムを作成せよ。結果はエクセルに書き出せ。 ipに濃度値、pix[ix]にその濃度値の画素数が入っているとしたデータ出力。 void make_inverse_image( ) { FILE *fp; fp = fopen("hist.csv","w"); if (fp==NULL){ printf("Can't open hist.csv"); } --------------(画素数のカウント部分は省略。各自作成せよ)-------------- for(ix=0; ix<256; ix++){ fprintf(fp,"%5d,%5d\n",ix,pix[ix]); printf("%5d,%5d\n",ix,pix[ix]); } } [3] 環境 [3.1] OS: Windows7 [3.2] コンパイラ名とバージョン:Visual Studio2010 [3.3] 言語: (C/C++/どちらでも可 のいずれか) [4] 期限: 2015年1月7日12:00まで [5] その他の制限:openCVは使ってはいけない この画素数のカウントのプログラムがどうしてもよくわかりません。どうかよろしくお願いします。
| - C/C++の宿題片付けます 168代目
343 :デフォルトの名無しさん[sage]:2015/01/05(月) 20:07:24.36 ID:ylPnsu7C - >>342
返答ありがとうございます。 教えていただいたプログラムを入力してみたところ、エクセルファイルの中身が真っ白な状態で書き出されてきました。 教えていただいたプログラムを含めたソースを書きますのでアドバイスお願いいたします。 void make_inverse_image( ) { FILE *fp; fp = fopen("hist.csv","w"); if (fp==NULL){ printf("Can't open hist.csv"); } int x,y,ip[1][1],ix,pix[1]; for(ix=0;ix<256;ix++) pix[ix] = 0; for ( y = 0; y < y_size1; y ++ ){ for ( x = 0; x < x_size1; x ++ ){ pix[ip[x][y]]++; for(ix=0; ix<256; ix++){ fprintf(fp,"%5d,%5d\n",ix,pix[ix]); printf("%5d,%5d\n",ix,pix[ix]); } } } }
| - C/C++の宿題片付けます 168代目
346 :デフォルトの名無しさん[sage]:2015/01/05(月) 22:51:46.84 ID:ylPnsu7C - >>345
申し訳ございません。いろいろと説明が足りませんでした。 この課題にはヘッダーファイルが用意されておりますのでそちらをアップロードさせていただきました。 こちらも踏まえてどうか解説のほどよろしくお願いします。 http://www.dotup.org/uploda/www.dotup.org92624.txt
|
|