- ベストアンサー
写真の抜き出し
lawsonの回答
- lawson
- ベストアンサー率44% (29/65)
抜き出す方法としては大きく2つ考えられる かもしれない。 ・位置情報による抜き出し。 ・色情報による抜き出し 今回の回答としては位置による抜き出しを 考えました。 私は、画像についてはほとんど知識がありませんが http://coconut.sys.eng.shizuoka.ac.jp/bmp/ こちらのサイトによいサンプルプログラムがありました。 bmp.c bmp.h をコンパイルして、 以下のソースをコンパイルしたものと、 リンクして実行プログラムを作ってください。 実行プログラムがあるディレクトリに dog.bmpの画像ファイルを置いてください。 dog.bmpの画像の犬の顔の付近だけが 抜き出された85×85ピクセルの小さな画像の dog2.bmpのファイルが出力されます。 bmp.c bmp.h dog.bmp はすべて先ほどのサイトにあります。 なお、先程のサイトではソースがEUCコードで 改行コードもUNIXの改行コードで保管してあるので、 コンパイラエラー等で問題になるようでしたら、 エディタなどの機能でSHIFT-JISに変換してください。 インターネットエクスプローラで右クリックで エンコードをSHIFT-JISにあわせて右クリックで ソースの表示して、コピペした内容を秀丸エディタ などで開いて編集するなどすれば、大丈夫でしょう。 (メモ帳では改行コードの問題で改行されていないように見えますので。) では、以後ソースを示します。 test0.c を参考にしながら、 bmp.cにある VMirror()関数を改造した VMirror2()を定義することで 処理を行いました。 画像のヘッダーの書式はまったく 理解できませんでした。 とりあえず、目的は達成できたはず。 なので、詳細は私に聞かれても知りません。 ・色情報による抜き出し をしたければ bmp.hの img構造体のcolor構造体を使えばよいでしょうが、 色についてのRGB値の意味とかは別途調べて 下さい。 私は職業がら適当にやってでも 目的を達成する術は普段からしてなれているだけです。 ですが、画像についてはまったくの素人 なので詳細を聞かれてもよく知らないです ではっ勉強がんばってください。 ###以下ソースコード##### #include<stdio.h> #include "bmp.h" img imgObj; img imgObj2; img* imgObjFrom = &imgObj; img* imgObjTo = &imgObj2; void VMirror2(img *sp, img *tp); int main(int argc, char** argv) { ReadBmp(".\\dog.bmp", imgObjFrom); VMirror2(imgObjTo, imgObjFrom); WriteBmp(".\\dog2.bmp", imgObjTo); return 0; } void VMirror2(img *sp, img *tp) { int i,j; int i2,j2; long k; //for(i=0;i<tp->height;i++) for(i=70,i2=0;i<155;i++,i2++) { for(j=200,j2=0;j<285;j++,j2++) { //sp->data[i][tp->width-j-1]=tp->data[i][j]; sp->data[i2][j2]=tp->data[i][j]; } } //sp->height=tp->height; //sp->height=tp->weight; sp->height=85; sp->width=85; }
関連するQ&A
- C言語が学びやすいおススメの問題集を教えてください。
C言語を問題を解きながら実践形式で覚えたいと思っています。 今の僕のレベルは、基本的な参考書を1冊読んだ程度で、 基本的な部分や簡単な配列などがどうにかできるくらい。ポインタや構造体などは一応読みましたが きちんと理解して使いこなせるかは疑問・・・といった程度です。 自分で探して目をつけた本としては、柴田望洋の「解きながら学ぶC言語」があります。 この本はどうでしょうか? その他におススメの本はないでしょうか? ぜひ教えてください。
- ベストアンサー
- C・C++・C#
- 入門より少し進んだC言語の勉強方法
初めまして。 現在、C言語の勉強をしています。 C言語入門用の本を2~3冊読み、実際に自分で書いてみて関数やポインタ、構造体などの初歩的な事は理解しました。 また、基本情報技術者試験をC言語で受験し、合格する事が出来ました。 しかし、基本情報技術者試験に出てくるプログラミングの問題を読み、どのような動作をするのか追いかける事は出来ますが、似たようなレベルのプログラムを「自分で1から書けるか」と言われたら難しいと思います。 入門用の本を卒業し、次のステップに進みたいと思うのですが、どのように勉強すればいいのかよく分からず、止まってしまっている状態です。 ぜひ、今後におけるおすすめの勉強方法がありましたら教えてください。 宜しくお願いします。
- ベストアンサー
- C・C++・C#
- C言語で計算機をつくりたい
大学でC言語の基礎の基礎(入門書レベル)を終了したばかりのものです。 一通りの関数とポインタなどは扱えるようになったので、C言語で実際に使えるプログラムを作りたいのです。 最終的には自分でよく使う統計関係の処理(不偏分散)などを行いたいのですが、いきなりそこまではできないのでまずは電卓を作ろうと思い立ちました。 根本的な考え方(どういった関数を使うか、その流れなど)だけで結構ですので、アドバイスを下さい。 お勧めの本、URL等ございましたら教えていただければ幸いです。
- ベストアンサー
- C・C++・C#
- 魚眼レンズの画像処理
魚眼レンズで撮影した画像って、ひずんでますよね。 これを普通に(って何が普通かと言う問題はあるけれど)直す 処理プログラムをおしえていただけませんか? できれば、教科書的なものでなく、サンプルプログラムがあれば うれしいんですが・・・ 言語は、C以上の高級言語ならたいていわかるので せめてポインタだけでも・・ お願いします。
- ベストアンサー
- その他(プログラミング・開発)
- 本格的にCプログラミングができるようになるまで
大学生です。大学ではまだ授業がありませんので、独学でC言語のプログラミングを勉強しています。C言語の文法を一通り理解し、ポインタに関しても1冊読んで理解しました(つもりです)。 C言語を教えている先生に個人的に、今後何を勉強すべきか聞いたところ、「いろんなアルゴリズムとかデータ構造を覚えるといい」と言ってくださいました。しかし、私には難しい事項ばかりで、「これらを勉強する意味は何なのか?」という疑問もあります。 また、オープンソースになっているプログラムを見ると、私のレベルを遥かに超えたものばかりで、読んでもさっぱりです。さらに、GUIツールキットの使い方なんかはもちろん、ライブラリの使い方や作り方、ソースを複数ファイルに分割する方法すら知らないことに気づきました(恥ずかしい限りです)。 独学を始めた頃は、「C言語をマスターすればソフトが作れるようになるんだろう」程度の認識でした。しかしここに来て、あまりにも多くの事項を学ばねばならない気がしてきました。「演習あるのみ」と仰る方もいますが、何を演習すればいいのかも分かりません。 一人前にプログラムが書けるようになるまでには、何をしなければならないのでしょうか。目的や理由も添えていただけると嬉しいです。
- ベストアンサー
- C・C++・C#
- プログラミングの勉強について教えてください。
現在自分は学校でC言語を学んでいます。 もちろん学校で学ぶことなのでテストもあり先日行いました。 授業では毎回資料が送られ、それについての課題(レポート)を作成しなければいけません。 そこで行う課題では自分はいつも早めに終わらせることができるのですが、 テストとなると全くできません。 テストはいつも筆記でプログラムを手書きで書く、プログラムから読み取る、プログラムの意味を書くなどがあります。 パソコンではかけても手書きで書くことができないのです。 先生にはいつも、「それは理解してないだけでしょ」と言われます。 しかし、正直プログラミングの勉強法と言うものがわかりません。 頭の中ではある程度理解していても実際書けなかったり、 先生の言うとおり意味がよくわからないので型を間違っていたりすることが多いです。 実際プログラミングはどのように勉強すればいいのでしょうか?
- ベストアンサー
- その他(学問・教育)
- C言語のポインタとスタックポインタ
プログラム始めて1ヶ月の初心者です。 C言語のポインタとスタックポインタというのは同じなのでしょうか。 スタックポインタの考えは大体理解出来たのですが C言語のポインタとなるとコードを見てもサッパリ分かりません。 ネットで調べても出てこなかったのでどなたか教えて下さい。 よろしくお願いします。
- ベストアンサー
- C・C++・C#
- C#で、Cのファイルポインタ(?)のような機能
プログラムの初心者、かつ、C#の初心者です。 C言語では、ファイルポインタを関数から関数へ渡すことができると思うのですが、C# ではどのようにすれば良いのですか? C#を使っていますが、C言語のような構造でプログラムを書いています。 やりたいことは、ファイルポインタを渡しながら、各関数で、ドカドカと計算結果をファイル内に書いていくということです。 宜しくお願いいたします。
- 締切済み
- C・C++・C#
お礼
アドバイスありがとうございます! URL先の内容、ざっと読んだだけでは難しかったのですが今後を考えても しっかり読んで学んでみたいと思います。 ソースコードを書いていただけて本当にありがとうございました。 上手に引用していきたいと思います! >目的を達成する術は普段からしてなれているだけです。 >ですが、画像についてはまったくの素人 目標の達成、というのが本当に大事な時があるのですごくうらやましいです。 画像については素人、ということはわざわざ調べてくださったということですよね! 本当にありがとうございました!