画像処理をしたいと思っているのですが、その前に画像のRGB値をビットごとに読み込む方法がわかりません。
R-----------------------------
G-----------------------------
B-----------------------------
R-----------------------------
G-----------------------------
B-----------------------------
…
↑のような形式で表にしたいと思っているのですが、よろしくお願いします。
なにがわからないのでしょうか?
画像の読み込み?
画像の表示?
RGB値の取得?
ビット表示?
エクセルへの出力?
> 画像ファイルのすべてのビットのRGB値をエクセルで表にする
って事ですが・・・具体的にどうしたいのかが、全く伝わってきません・・・
> 画像処理をしたいと思っているのですが
との事ですが、「画像処理」なんでしょう?
また、その「画像処理」と、
> のような形式で表にしたいと思っているのですが
と、どういう関係が・・・
「事前の勉強として、とりあえずやってみたい」と言うことなんでしょうか?
でも
> エクセルで
Excelで??「画像ファイル」の種類は?基本的にExcelに画像ファイルを扱う機能は無いですよね・・・
#表示するくらいはできますけど、そこまでですよね・・・
それとも、プログラム自体はExcelではなく、VB6とかVB2005とかで作成するつもりなんでしょうか?
また、
> 画像のRGB値をビットごとに読み込む
との事ですが・・・
「ビット」って何の事を言っているんでしょう?
扱いたいのが、RGBが各々1ビットづつ(つまり3ビット=8色)の特殊な画像なんでしょうか?
普通は、各色複数ビットで構成されると思いますが・・・
それをどう扱うんでしょう??
> R-----------------------------
の「-」は、何を表しているんでしょう??
また、横方向は何(Excelのセル?)で縦方向は何なんでしょう???
「ピクセル」くらい知らないと処理は無理かもね。
BMPファイルの構造
http://www.ruche-home.net/program/bmp/struct.php
BMPファイル形式
http://www.syuhitu.org/other/bmp/bmp.html
あたりを読んでわからないのならあきらめたほうがいいです。
#エクセルを使うという思いつきをする段階でも?かな。
説明が曖昧でした。すみませんでした。
簡単に言うと、画像のファイルがあって、ピクセルごとのRGB値を知りたいんです。
で、そのRGB値を表にしたいということです。
なお、画像ファイルの形式は全ての画像ファイル形式に対応できるものとしています。
わからないことは、
画像の読み込み方法
RGB値の取得方法
です。
よろしくお願いします。
プログラムを作成する上で必要な情報について、曖昧さ
は変わっていませんね。
画像を扱うには知識不足の感が否めません。
いまださんがBMP形式についてのリンクを貼ってくれて
いますが、これが他の形式だと内容が全く変わります。
圧縮が行われている場合もあります。
http://cns-guide.sfc.keio.ac.jp/2001/10/1/2.html
>なお、画像ファイルの形式は全ての画像ファイル形式に対応できるものとしています。
その場合、最悪、全てのファイル形式について別の処理を
作る必要があります。掲示板で回答できる範囲ではないと
考えます。
全てのファイル形式について、その内容を理解し、自力で
解析するなら、ファイルから直接データを読み取ることも
可能かもしれません。これを実行したいなら、それぞれの
ファイル形式について勉強してきてください。
VBの質問ではありませんし、掲示板で教えられる内容でも
ありません。
ただ、時間もかなり掛かりますし、ファイルから直接読み
取るというのが必須条件でない場合、何か別のインストール
されているアプリケーションや、言語に用意された関数や
ActiveX・DLL等を利用することで、画像を表示することは
できると思います。
ところが、この場合、開発環境に左右されます。最初の質問
では Excel が上がっていましたが、大吉末吉さんの指摘どおり
Excel で画像を扱うのは難易度が上がりそうです。
まずは、用意できる開発環境と、扱いたい画像形式を1つ
選択することをお勧めします。
ちなみに
http://madia.world.coocan.jp/download/tokikaze/tokikaze_readme.htm
の辺りを見てきたとして、管理人さんからの掲示板での回答は期待しない方がいいと思います。。。
# PDF関連の質問があっても回答が得られないままのもの多いですし。。。
まず、ピクチャーボックスに読み込んで、
Set Picture1.Picture = LoadPicture("画像ファイル.bmp")
Pointメソッドで各座標の色を取得して、
a = Picture1.Point(X, Y)
後は、RGBに分解してエクセルのセルに代入していけばいいと思います。
でもこれでは処理速度が遅いので、もっと高速に処理したいときはGDIを使う方法があります。
次のサイトのサンプルが使えます。
画像処理の高速化
http://www5a.biglobe.ne.jp/~suuta/vb/kousokuka.html
このサンプルのpixelという配列に色情報が入っています。(ただし、Y座標が逆になっているようなので、入れ替える処理を加える必要がありそうです。)
にんじんさん,よく理解していただいています.
ありがとうございました.
おかげでプログラムが組めました.
ツイート | ![]() |