VSexpress2012を用いた画像処理

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
zep

VSexpress2012を用いた画像処理

#1

投稿記事 by zep » 12年前

VSexpress2012(以下VS)を用いて簡単な画像処理をしようと考えています
とりあえず準備として「白地の背景に黒単色で描かれている三角形、四角形、球形の画像」を配列に格納したいのですが

①画像フォーマットはなにが扱えるのか
②fopenや配列などの基本的な知識だけでいけるか

が知りたいです。

①については現在jpeg png gif bmpで考えているのですが、rawなどに変換する必要があるのかどうか
②については外部ツールやライブラリ(OPENGLやCV)に頼ることなく
VSと私自身が今もってる知識だけで実装可能かどうかが知りたいです。

どうかご教示下さい。

アバター
h2so5
副管理人
記事: 2212
登録日時: 15年前
住所: 東京
連絡を取る:

Re: VSexpress2012を用いた画像処理

#2

投稿記事 by h2so5 » 12年前

(1) C言語の標準ライブラリが対応しているフォーマットはありません。実装すればどんなフォーマットでも扱えます。
(2) フォーマットに関する知識が必要です。例えば、PNGの読み込みを実装するにはこのような仕様を理解している必要があります。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: VSexpress2012を用いた画像処理

#3

投稿記事 by softya(ソフト屋) » 12年前

前提として、何の言語を使うかがまず問題です。
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(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

アバター
みけCAT
記事: 6734
登録日時: 15年前
住所: 千葉県
連絡を取る:

Re: VSexpress2012を用いた画像処理

#4

投稿記事 by みけCAT » 12年前

softya(ソフト屋) さんが書きました:fopenと有るのでC言語だと思いますが、C言語の標準ライブラリでは画像は扱えないのでWindowsAPIの勉強は最低限知識として必要です。
それは違うと思います。
まず、質問者のやりたいことは
zep さんが書きました:「白地の背景に黒単色で描かれている三角形、四角形、球形の画像」を配列に格納したい
であり、ファイルに保存したい、とかファイルに読み込みたい、画像を表示したいという記述はありません。
よって、そのような処理は必要ないと考えられます。

ファイルを読み込むなら任意の画像を格納できるはずなので、わざわざ画像に書かれている図形を明示する必要性は低いと考えられます。
よって、三角形、四角形、球形の画像をプログラムで生成して格納したい、という解釈ができると思います。
もちろん、ファイルを読み書きしたい場合でも、C言語にファイルを読み書きする標準ライブラリがあるため、
WindowsAPIの勉強は「必要」ではないと思います。

画像を保存する場合、白黒画像なら、XBM形式が簡単だと思います。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: VSexpress2012を用いた画像処理

#5

投稿記事 by softya(ソフト屋) » 12年前

確かに画像ファイルだけの処理で結果を画像ファイルに出すだけなら、C言語の標準ライブラリで可能ですね。
jpeg png gif bmp
の画像フォーマットの解析を自前で実装するならbmpが資料も多いので妥当な選択になると思います。
rawでも良いんですが。

>画像を保存する場合、白黒画像なら、XBM形式が簡単だと思います。

出力をXBMにすれと簡単なので、それも悪く無いです。
「XBM - テキストエディタで作れる画像ファイル」
http://sei.qee.jp/docs/graphics/xbm/
ただ、Windowsだと対応しているのはブラウザなどに限定のはず(私が知らないだけ?)
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

アバター
みけCAT
記事: 6734
登録日時: 15年前
住所: 千葉県
連絡を取る:

Re: VSexpress2012を用いた画像処理

#6

投稿記事 by みけCAT » 12年前

softya(ソフト屋) さんが書きました:ただ、Windowsだと対応しているのはブラウザなどに限定のはず(私が知らないだけ?)
「など」の内容がわからないのですが、手元の環境(Windows Vista)で試したところ、
画像として読み込めたソフト
 疾風、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で殴ればいい!(死亡フラグ)

アバター
みけCAT
記事: 6734
登録日時: 15年前
住所: 千葉県
連絡を取る:

Re: VSexpress2012を用いた画像処理

#7

投稿記事 by みけCAT » 12年前

BMPファイルの構造の参考になるサイトです。
プログラミング/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を用いた画像処理

#8

投稿記事 by zep » 12年前

みなさまありがとうございます。少し捕捉を致しますと

使用言語はCです。
読み込んだ画像になにか処理を施して画像を生成、表示というところまでやるつもりはありません。
あくまで既存の画像を読みこんで配列に格納というところまでです。

みなさんの意見を見ると、どうやらCだけでできそうなのかな・・・?
ありがとうございました

アバター
みけCAT
記事: 6734
登録日時: 15年前
住所: 千葉県
連絡を取る:

Re: VSexpress2012を用いた画像処理

#9

投稿記事 by みけCAT » 12年前

今回は使わない縛りとのことですが、今後の為に一応ライブラリを紹介しておきます。
libjpeg
libpng
zlib (libpngを使うのに必要)
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

閉鎖

“C言語何でも質問掲示板” へ戻る