VSexpress2012(以下VS)を用いて簡単な画像処理をしようと考えています
とりあえず準備として「白地の背景に黒単色で描かれている三角形、四角形、球形の画像」を配列に格納したいのですが
①画像フォーマットはなにが扱えるのか
②fopenや配列などの基本的な知識だけでいけるか
が知りたいです。
①については現在jpeg png gif bmpで考えているのですが、rawなどに変換する必要があるのかどうか
②については外部ツールやライブラリ(OPENGLやCV)に頼ることなく
VSと私自身が今もってる知識だけで実装可能かどうかが知りたいです。
どうかご教示下さい。
VSexpress2012を用いた画像処理
Re: VSexpress2012を用いた画像処理
(1) C言語の標準ライブラリが対応しているフォーマットはありません。実装すればどんなフォーマットでも扱えます。
(2) フォーマットに関する知識が必要です。例えば、PNGの読み込みを実装するにはこのような仕様を理解している必要があります。
(2) フォーマットに関する知識が必要です。例えば、PNGの読み込みを実装するにはこのような仕様を理解している必要があります。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: VSexpress2012を用いた画像処理
前提として、何の言語を使うかがまず問題です。
VSexpress2012だとC言語 or C++ or C++/CLI or C# or VB などなどが利用できます。
使う言語によって対応が変わりますが、pngはC言語の場合外部ライブラリに頼るか自力で作成せざるおえません。
fopenと有るのでC言語だと思いますが、C言語の標準ライブラリでは画像は扱えないのでWindowsAPIの勉強は最低限知識として必要です。
C言語とWindowsAPIだとして回答すると
①画像フォーマットはなにが扱えるのか
bmpとjpgです。
②fopenや配列などの基本的な知識だけでいけるか
WindowsAPIの知識が必要です。
VSexpress2012だとC言語 or C++ or C++/CLI or C# or VB などなどが利用できます。
使う言語によって対応が変わりますが、pngはC言語の場合外部ライブラリに頼るか自力で作成せざるおえません。
fopenと有るのでC言語だと思いますが、C言語の標準ライブラリでは画像は扱えないのでWindowsAPIの勉強は最低限知識として必要です。
C言語とWindowsAPIだとして回答すると
①画像フォーマットはなにが扱えるのか
bmpとjpgです。
②fopenや配列などの基本的な知識だけでいけるか
WindowsAPIの知識が必要です。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: VSexpress2012を用いた画像処理
それは違うと思います。softya(ソフト屋) さんが書きました:fopenと有るのでC言語だと思いますが、C言語の標準ライブラリでは画像は扱えないのでWindowsAPIの勉強は最低限知識として必要です。
まず、質問者のやりたいことは
であり、ファイルに保存したい、とかファイルに読み込みたい、画像を表示したいという記述はありません。zep さんが書きました:「白地の背景に黒単色で描かれている三角形、四角形、球形の画像」を配列に格納したい
よって、そのような処理は必要ないと考えられます。
ファイルを読み込むなら任意の画像を格納できるはずなので、わざわざ画像に書かれている図形を明示する必要性は低いと考えられます。
よって、三角形、四角形、球形の画像をプログラムで生成して格納したい、という解釈ができると思います。
もちろん、ファイルを読み書きしたい場合でも、C言語にファイルを読み書きする標準ライブラリがあるため、
WindowsAPIの勉強は「必要」ではないと思います。
画像を保存する場合、白黒画像なら、XBM形式が簡単だと思います。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: VSexpress2012を用いた画像処理
確かに画像ファイルだけの処理で結果を画像ファイルに出すだけなら、C言語の標準ライブラリで可能ですね。
jpeg png gif bmp
の画像フォーマットの解析を自前で実装するならbmpが資料も多いので妥当な選択になると思います。
rawでも良いんですが。
>画像を保存する場合、白黒画像なら、XBM形式が簡単だと思います。
出力をXBMにすれと簡単なので、それも悪く無いです。
「XBM - テキストエディタで作れる画像ファイル」
http://sei.qee.jp/docs/graphics/xbm/
ただ、Windowsだと対応しているのはブラウザなどに限定のはず(私が知らないだけ?)
jpeg png gif bmp
の画像フォーマットの解析を自前で実装するならbmpが資料も多いので妥当な選択になると思います。
rawでも良いんですが。
>画像を保存する場合、白黒画像なら、XBM形式が簡単だと思います。
出力をXBMにすれと簡単なので、それも悪く無いです。
「XBM - テキストエディタで作れる画像ファイル」
http://sei.qee.jp/docs/graphics/xbm/
ただ、Windowsだと対応しているのはブラウザなどに限定のはず(私が知らないだけ?)
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: VSexpress2012を用いた画像処理
「など」の内容がわからないのですが、手元の環境(Windows Vista)で試したところ、softya(ソフト屋) さんが書きました:ただ、Windowsだと対応しているのはブラウザなどに限定のはず(私が知らないだけ?)
画像として読み込めたソフト
疾風、GIMP、Opera、OpenOffice.org Writer、OpenOffice.org Calc、OpenOffice.org Impress、OpenOffice.org Draw
LibreOffice Writer、LibreOffice Calc、LibreOffice Impress、LibreOffice Draw
画像として読み込めなかったソフト
Firefox、JTrim、@icon変換、Imagemagick(convert)、ペイント、Google Chrome、Sleipnir、Internet Explorer
Microsoft Word 2007、VLCメディアプレイヤー、PictBear、Microsoft Excel 2007
でした。むしろ対応しているブラウザの方が少ないようですね。
テストに使用したデータを添付します。
- 添付ファイル
-
- testdayoon.zip
- テストに使用したXBMファイル
- (269 バイト) ダウンロード数: 136 回
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
Re: VSexpress2012を用いた画像処理
BMPファイルの構造の参考になるサイトです。
プログラミング/BMPファイル仕様 - ルーチェ's Homepage
PNGファイルの構造の参考になるサイトです。
PNG ファイルフォーマット
IDATの中のデータの構造はこちら→http://www.ietf.org/rfc/rfc1950.txt http://www.ietf.org/rfc/rfc1951.txt
無理に圧縮しようとせず、ヘッダ+(無圧縮ブロックのヘッダ+適切な長さに区切ったデータ)×必要な分+ハッシュ(Adler32)で大丈夫です。
JPEGの入出力はかなり難しいらしいので、省略します。
プログラミング/BMPファイル仕様 - ルーチェ's Homepage
PNGファイルの構造の参考になるサイトです。
PNG ファイルフォーマット
IDATの中のデータの構造はこちら→http://www.ietf.org/rfc/rfc1950.txt http://www.ietf.org/rfc/rfc1951.txt
無理に圧縮しようとせず、ヘッダ+(無圧縮ブロックのヘッダ+適切な長さに区切ったデータ)×必要な分+ハッシュ(Adler32)で大丈夫です。
JPEGの入出力はかなり難しいらしいので、省略します。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
-
zep
Re: VSexpress2012を用いた画像処理
みなさまありがとうございます。少し捕捉を致しますと
使用言語はCです。
読み込んだ画像になにか処理を施して画像を生成、表示というところまでやるつもりはありません。
あくまで既存の画像を読みこんで配列に格納というところまでです。
みなさんの意見を見ると、どうやらCだけでできそうなのかな・・・?
ありがとうございました
使用言語はCです。
読み込んだ画像になにか処理を施して画像を生成、表示というところまでやるつもりはありません。
あくまで既存の画像を読みこんで配列に格納というところまでです。
みなさんの意見を見ると、どうやらCだけでできそうなのかな・・・?
ありがとうございました
Re: VSexpress2012を用いた画像処理
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)