• 締切済み

シマウマの模様を変えるプログラム

今画像処理で、シマウマの縞模様を変えるというプログラムを作成しています。 シマウマの画像を二値化して、白と黒に分けるところまではできました。 その後の黒い縞の部分を抽出して、別の画像をはめ込むところがよくわかりません。 どのようなプログラムにすればいいのでしょうか? よろしければ回答お願いしますm(__)m 一応↓に自分が考えた関数のプログラムを載せておきます。 (これを実行しても何も起きません…) どうかお願いします…・゜・(ノД`;)・゜・ /*---------しまうま関数--------*/ int Simauma(unsigned char inImage[], unsigned char outImage[], int w, int h) {  int i,j;    FILE *fp;  if((fp=fopen("out100.raw", "rb"))==NULL) /* out100:はめ込む画像 */    printf("ファイルをオープンできません。\n");  else{    for(i=0;i<h;i++){       for(j=0;j<w;j++){          if(inImage[j*w+i]==0) /* 領域が黒ならば */          inImage[j*w+i]=outImage[j*w+i]; }       }    }    fclose(fp);  return 1; }

みんなの回答

  • kacchann
  • ベストアンサー率58% (347/594)
回答No.1

C言語よく知らないので 具体的には答えられないのですが。 --- (・ニ値化シマウマデータはdata[]に格納されているとする) ・はめ込み画像ファイル「hame.img」をオープン ・その中身を配列hameData[]に格納 ・(hameData[]の値を参考にして)data[]の中身を加工する ・data[]の中身をファイルに書き出す この流れをそのままソースコードにすればいいのではないでしょうか。 まだ不明な点、ありますかな? --- >これを実行しても何も起きません… プログラム内で使いたいデータは 「ファイルから配列に読み出」さないと。 そして、 プログラム内で加工した配列は 「ファイルに書き出」さないと。 質問者さんが掲示したソースコードには、 その「ファイル入出力処理」がすっぽり抜けてます。 とりあえず「ファイル入出力」で検索してみてください。

klaskk
質問者

お礼

丁寧な回答ありがとうございます。 そうですね、入出力が確かにありませんね…。 それすらもよくわからなくて…、今検索して考えてます。 それと回答と共に参考にさせてもらいます、本当にありがとうございました!

関連するQ&A

専門家に質問してみよう