VC++で画像処理がしたい!! – プログラミング – Home

VC++で画像処理がしたい!!
 
通知
すべてクリア

[解決済] VC++で画像処理がしたい!!

固定ページ 1 / 2

ぐってぃ
 ぐってぃ
(@ぐってぃ)
ゲスト
結合: 21年前
投稿: 10
Topic starter  

VC++で画像処理をしたいと思っています。

そこで、bmpファイルの全画素濃度を2次元配列に格納する処理ができれば、その他の画
像処理も可能になると考えています。

どなたか、「bmpファイルの全画素濃度を2次元配列に格納する処理」のやり方を教えて
いただけませんか??

画像処理で参考になるHPなどあれば教えていただきたいと思っています。
よろしくお願いします。


引用未解決
トピックタグ
...
 ...
(@...)
ゲスト
結合: 22年前
投稿: 113
 

ここが参考になると思われ。
http://www.sm.rim.or.jp/~shishido/
環境を書かないとクソwoodにいじめられると思われ。


返信引用
ぐってぃ
 ぐってぃ
(@ぐってぃ)
ゲスト
結合: 21年前
投稿: 10
Topic starter  

レスありがとうございます。

遅れましたが・・・・
【環境】


返信引用
ぐってぃ
 ぐってぃ
(@ぐってぃ)
ゲスト
結合: 21年前
投稿: 10
Topic starter  

【環境】
windows XP / VC++
です。

VC++の環境で、画素濃度を取り出す関数として、
「GetPixel」関数という存在を知りました。

これの詳しい使い方など教えていただけませんか??


返信引用
PAI
 PAI
(@PAI)
ゲスト
結合: 23年前
投稿: 359
 

>教えていただけませんか

これじゃアドバイスのしようがないってば。

手取り足取り教えるわけには行かないし、
『やってみたら』
ぐらいしかいいようがない。


返信引用
aetos
(@aetos)
Noble Member
結合: 5年前
投稿: 1480
 

> 環境を書かないとクソwoodにいじめられると思われ。

環境を書くべきなのには同意だが、そういう言い方はイクナイ。


返信引用
PATIO
(@patio)
Famed Member
結合: 4年前
投稿: 2660
 

こういう掲示板はヒントを出す程度の物なので
見つけたのであれば、とりあえず自分で試してみてから
わからないところをピンポイントで質問してください。
このピンポイントでというのがミソです。
あまりに大雑把な質問だと解答が付く前に
質問内容に対する質問が延々と続いてしまって
なかなか本題に入れませんので。

あと、HELPを熟読するのは必須です。
HELPで足りないのであれば、参考書籍もそろえましょう。


返信引用
島
 島
(@島)
ゲスト
結合: 23年前
投稿: 238
 

全画素濃度とはなんですか?(どうやら濃度とは画像処理では当り前の言葉のようですが
それ以外の分野の人(個々に参加している人のかなりの割合)には意味がつかめないと
思えますので説明が必要かと思います


返信引用
ぐってぃ
 ぐってぃ
(@ぐってぃ)
ゲスト
結合: 21年前
投稿: 10
Topic starter  

たくさんのアドバイスありがとうございます!
質問の仕方等々、すいませんでした。

もう少し自分で考えてみて、分からないところをピックアップした後ピンポイントで質
問できるようにしたいと思っています。


返信引用
ぐってぃ
 ぐってぃ
(@ぐってぃ)
ゲスト
結合: 21年前
投稿: 10
Topic starter  

プログラムリスト50行くらいをアップして見てもらいたいのですが、そういうことを行
ってもいいのでしょうか??


返信引用
n
 n
(@n)
ゲスト
結合: 21年前
投稿: 90
 

50行は長いと思いますね。
以前やっちゃったことがありますがたぶん誰も読まなかったと思います;;

それと島さんもおっしゃってますが、専門分野の内側では当たり前の用語や事柄でも
部外者には何のことやらさっぱりというのが普通なので、
まず「全画素濃度」とは何かということを素人にでも分かるように説明した方がいい
です。私も「全画素濃度」が何なのか知らないです。


返信引用
島
 島
(@島)
ゲスト
結合: 23年前
投稿: 238
 

読みやすいコードなら50行位は良いのではないかと(私は)思います


返信引用
ぐってぃ
 ぐってぃ
(@ぐってぃ)
ゲスト
結合: 21年前
投稿: 10
Topic starter  

要所を載せます。

<画像入力関数>
hp=header_buf;

fp=fopen(filename,rb); //バイナリモードでファイルオープン

if(fp==NULL)
{
     printf(ファイルオープンエラー);
exit(1);
}

fread(header_buf,sizeof(unsigned char),54,fp); //ヘッダ情報読み込み
fread(pallet_buf,sizeof(unsigned char),1024,fp); //パレット情報読み込み

for(i=bmp_height-1;i>-1;i--) //画像データの読み込み
fread(input[i],bmp_width,1,fp);

<画像出力関数>
fp=fopen(filename,wb); //バイナリモードでファイルオープン

fwrite(header_buf,sizeof(unsigned char),54,fp); //ヘッダ情報書き込み
fwrite(pallet_buf,sizeof(unsigned char),1024,fp); //パレット情報書き込み

for(i=0;i<bmp_height;i++) //配列へ格納
{
for(j=0;j<bmp_width;j++)
{
output[i][j]=input[i][j];
}
}

for(i=bmp_height-1;i>-1;i--) //画像データの書き込み
fwrite(output[i],bmp_width,1,fp);

こんな感じで今やってます。
これではきだした出力ファイルが入力ファイルに比べ格段にサイズが減り描画できなく
なってしまいます。何かお気づきの点があったら指摘してください。


返信引用
PATIO
(@patio)
Famed Member
結合: 4年前
投稿: 2660
 

これってパレット読込時にヘッダ情報の解釈がされてないようですが、
これで本当に大丈夫なんでしょうか?
扱うファイルの条件は固定なんですか?
bmp_heightとbmp_widthの出所もわかりませんしねぇ。
画素子が必ず一バイトとは限りますまい。
この辺はきちんとヘッダ解釈しないとわからないはずですよ。

ファイルフォーマットの確認をきちんと行って
フォーマットを理解していないとこういう処理は出来ませんよ。


返信引用
ぐってぃ
 ぐってぃ
(@ぐってぃ)
ゲスト
結合: 21年前
投稿: 10
Topic starter  

まだまだ、勉強不足のようです。
そこで、完成しているプログラムのソースなどをみて勉強したいと思い

>ここが参考になると思われ。
http://www.sm.rim.or.jp/~shishido/

ここで、C++のBMPファイルの画像処理のプログラムを実行してみたのですが、

 LIBCD.lib(crt0.obj) : error LNK2001: 外部シンボル _main は未解決です
 Debug/Cpp1.exe : fatal error LNK1120: 外部参照 1 が未解決です。

↑のエラーが表示され実行できません。
どうしてか教えていただけませんか??


返信引用
固定ページ 1 / 2

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました