• ベストアンサー

C言語での画像処理:jpeg→pgmへ

Linux(Fedora core 4)を使っております。 今回C言語で画像処理を行いたいと考え、画像の形式がpgm形式としてのプログラムを組みました。 このプログラムを、実際にデジカメでとった写真について使いたいのですが、デジカメで撮った写真はjpeg形式の為、これをpgm形式に変換したいのですが、これはプログラムを作って行うことはできるのでしょうか。もしくはツールが必要なのでしょうか。ちなみに当方プログラミング初心者でございます。 よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • sismoon
  • ベストアンサー率22% (22/97)
回答No.2

まず、jpegとpgmのデータ形式が違うことはご存知でしょうか? pgmが1ピクセルごとの情報を保存しているのに対し、jpegはランレングスという方法で保存しています。 これは輝度値pのピクセルが横にn個続いているというものです。 なので、まずプログラムで輝度値と連続する個数の情報を取得して割り振り直さなければなりません。 多分、画像処理ツールを使った方が早いかと思います。

その他の回答 (1)

  • J_H
  • ベストアンサー率57% (11/19)
回答No.1

全くの門外漢だと断った上で。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 linux には convert というコマンドがあるみたいです(参考URL)。 試しにcygwin を触ってみたら、 cygwin でも変換できたみたいなんですが、 pgmを表示できるビューアがないので、 本当に出来てるかどうかは未確認です。 サイズだけを見ると、21.3(jpg)->118(pgm)KB

参考URL:
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/289convgraph.html

関連するQ&A

  • C言語 画像処理 jpeg → pgm

    C言語 ( visual studio 2010 ) を使っております。 今回C言語で画像処理を行いたいです。 使用目的としましては、実際にデジカメでとった写真について使いたいのですが、デジカメで撮った写真はjpeg形式の為、これをpgm形式に変換したいのです。 しかし、プログラミング経験がほとんど無いため、どのようなプログラミングを作成してよいのか解りません。 一応、新版 明解C言語 入門編(出版社: ソフトバンククリエイティブ)は読んだのですが、作成できませんでした。 お教えいただけないでしょうか。 よろしくお願い致します。

  • PGM形式の画像。。。

    LinuxでC言語を用いて画像処理を行いました。(pgm形式です) 新しく作ったpgm形式の画像をwindowsで開こうとしたら開けなくて困っています><!!! どなたかLinuxで作ったpgm形式の画像をwindowsで開く方法をご存知の方がいらっしゃいましたらよろしくご教授願います。

  • C言語で画像処理

    C言語で画像処理をしたいのですが、元となる画像の形式は何がよいのでしょうか?BMP,GIF,JPEG,PNG,などいろいろな形式がありますよね。一般的には画像処理プログラミングをするときに、どの形式の画像を用いるのでしょうか? また、その画像の読み込み方がわかりません。C言語は入門書を一通りやってみた程度で、画像処理のプログラミングの仕方がわかりません。 初心者なものでよろしくお願いします。

  • JPEGとBMP

    JPEGで保存してある画像をBMP形式に変換する事というのは可能なのでしょうか? また、JPEG形式の画像を2値化するプログラムをC言語で書くことは可能なのでしょうか? JPEGとBMPの違いがよく分からないので、そのあたりも教えていただけるとありがたいです。 よろしくお願いします。

  • pgmファイル

    JPEGのファイルをpgm形式に変換したいのですが、 方法を見つけることができません。 どうすれば変換できるのかアドバイスをいただきたく質問しました。 変換方法が載っているHPなどを教えていただけるとうれしいです。

  • HPビルダーV9での画像処理について

    HPビルダーV9を使用しておりますが、ツールにある、WEBデザイナーを用いて、デジカメ画像の写真を加工したいと思っています。デジカメのピクセルは、640×480でそれ以下に縮小(切りとって)と思い、切り取りのはさみを用いて、切り取り、画像掲示板に張ろうと思ったのですが、GIFやJPEG形式ではないと駄目みたいです。WEBデザイナーでの GIF JPEG 変換方法を教えてください。お願いします。

  • pgm画像入出力(C言語)

    画像入出力のプログラムを書いた(とあるサイトからパクった)のですが、出力画像のテキストデータが文字化けしてしまいます。原因究明お願いします。このプログラムでは2倍に変換していますが、そこは重要ではなく、入出力さえできればいいです。 OS:windows 文字コード:色々試したけどダメ。試してないものもあるかも。 プログラム #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { FILE *fpi, *fpo; unsigned char idat; /* 引数のチェック */ if (argc != 3) { fprintf(stderr, "Usage: %s [input] [output]\n", argv[0]); exit(1); } /* 入力画像のオープン */ if((fpi=fopen(argv[1], "rb")) == NULL){ fprintf(stderr, "input file open error\n"); exit(1); } /* 出力画像のオープン */ if((fpo=fopen(argv[2], "wb")) == NULL){ fprintf(stderr, "output file open error\n"); exit(1); } /* 入力画像の読込み */ while (fread(&idat, sizeof(unsigned char), 1, fpi) == 1){ /* 2倍の変換 */ if (idat * 2 > 255) { idat = 255; } else { idat = idat * 2; } /* 変換データの書出し */ if(fwrite(&idat, sizeof(unsigned char), 1, fpo) != 1){ fprintf(stderr, "data write error\n"); exit(1); } } fclose(fpi); fclose(fpo); return (0); } コンパイル方法(cygwin) ./a 入力画像.pgm 出力画像.pgm

  • 画像変換処理に使用するプログラミング言語

    プログラミング初心者です。 画像変換処理をプログラムしようと考えているのですが、JavaやC#など画像処理に向いていると思われる言語の種類が多くてどの言語でプログラムを組もうか迷っています。 経験者の方、是非ともアドバイスをお願いします。 具体的な画像変換処理ですが、画像を直交座標から極座標へ変換するといったことです。つまり、アスペクト比3:4等の画像を円形に変換したいのです。 使用する予定の言語はJavaを考えています。これを選択した根拠は特にないです。 質問事項としては、 (1),上記のような画像変換処理を行える言語は何か。 (2),(1)の中でプログラミング初心者が扱いやすい言語はどれか。 以上を教えていただきたいです。何卒、宜しくお願い致します。 P.S.添付データは、直交座標の画像で極座標変換を行った画像です。ちなみにGIMPというフリーソフトを使用しました。

  • VOB から JPEG 変換

    デジカメで撮ったJPEG形式の写真をバックアップするつもりで、Windows DVD メーカーを使ってJPEGの写真をDVDに書き込んだところ、VOB形式で書き込まれてしまいました。私としては、JPEG形式で書き込んで、後々、必要な時にプリンターや写真屋で印刷したかったんですが、このVOB形式でも、そういったことはできるのでしょうか?また、できないのであれば、もとのJPEG形式の画像に変換、復元できるソフトなどがあれば紹介していただけないでしょうか? できれば、画質が変わらない方が好ましいです。よろしくお願いいたします。

  • 画像の変換 bmp>>>pgm

    モノクロのビットマップ(ウインドウズ98とかのペイントのヤツ)を PGM(Portable GrayMap)形式に変換したいのですが,フリーソフトでではなく, C言語で理解したいので,どなたかご存知の方,教えて下さい. 参考になりそうなサイトや,本などでも結構ですので,よろしくお願いします.

専門家に質問してみよう