画像処理ソリューション
これを見れば画像処理の入門から基礎~応用まで全てがわかるのを目指して!
   
翻訳(Translate)

プロフィール

Akira

ニックネーム:Akira
東京都の町田事業所に勤務
画像処理ソフトの開発を行っています。リンクフリーです!
詳細プロフィールは こちら
お問い合わせは、こちら↓

【補助HP】
画像処理ソリューションWeb版 【Newブログ】
イメージングソリューション

スポンサーリンク


カテゴリ

最近のコメント

カレンダー

09 | 2017/10 | 11
S M T W T F S
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 - - - -

趣味のブログ

iPhone萬歳!
iPhoneの情報いろいろ。
ブログ学習帳
ブログ、SEO、アフィリエイト情報など(まだまだこれから)
俺流クラフト日記
ハンドメイド作品の記録(現在、放置中)

スポンサーリンク 最近の記事
(09/18)  計測測定展に光切断のデモを出展しました
(08/17)  ディジタル画像技術事典200に記事が載りました
(06/09)  光切断を画像センシング展で公開
(05/14)  中国(上海)へ行って来ました
(04/12)  韓国へ行って来ました
(03/10)  私の求める新人像
(01/18)  エレクトロテストジャパンにカラー光切断法のデモを出展しました。
(12/23)  ユニークアクセス200万達成!
(12/10)  【カラー光切断法】YouTube動画まとめ
(11/04)  国際画像機器展2014にカラー光切断法を出展します。
(10/05)  第25回コンピュータビジョン勉強会@関東に参加してきました。
(09/08)  フーリエ変換の記事を追加しました。
(08/09)  【画像処理】ランキング低下中
(07/06)  記事の更新が停滞中...
(06/08)  画像センシング展2014でカラー光切断法のデモを行います。
(05/17)  カラー光切断法の動画を公開しました。
(04/30)  ソニーα NEX-5Rで星空撮影
(04/10)  カラー光切断法の取込結果を追加しました
(03/08)  Korea Vision Show 2014へ行ってきました
(02/05)  フーリエ変換シリーズを始めます。
(01/06)  2014年、あけましておめでとうございます。
(12/04)  カラー光切断法を公開(国際画像機器展2013にて)
(11/13)  国際画像機器展2013に出展します
(10/14)  「画像処理のためのC#」はじめます。
(09/16)  【C#,VB.NET】高速描画コントロールをバージョンアップしました。
(09/04)  拡大鏡に輝度値表示、ルーラー機能を追加した個人ツールを公開
(08/05)  7月の拍手Top5
(07/06)  2013年6月人気記事Top5
(05/12)  SONY α NEX-5Rレビュー
(04/24)  SONY α NEX-5RY購入

【C#】マウスホイールで画像の拡大縮小

これまで紹介してきた記事の内容を使って、マウスホイールで画像を拡大縮小する方法を紹介します。
(必要な知識) これらを使って、下図のようにマウスポインタを中心として、画像の拡大縮小するプログラムを作成しました。
サンプルプログラムのダウンロードはこちらより

サンプルプログラム実行例


画像の拡大縮小表示のポイントは、任意点周りの回転移動でも紹介しているように、画像の拡大縮小では原点を中心として画像を拡大縮小するので、任意の点を中心として拡大縮小する場合は中心の点を原点へ移動し、拡大縮小後、元の位置へ移動する処理を行います。 点(X、Y)を中心に画像を拡大表示する場合
マウスホイールで画像の拡大縮小
点(X、Y)を原点へ移動します。
   マウスホイールで画像の拡大縮小
原点へ移動後、画像の拡大縮小処理を行います。
   マウスホイールで画像の拡大縮小
点を元の位置へ戻します。
   マウスホイールで画像の拡大縮小
サンプルプログラムは以下の通り
サンプルプログラムのダウンロードはこちらより

やっている事の割には、意外と簡単。
昔は大変だった...
Loading...
スポンサーリンク

この記事に対するコメント
Re: タイトルなし
自己解決情報参考になりました。
画像サイズを指定しないと画像表示サイズが異なる場合があるって、注意が必要ですね。
これは確か、jpgファイルには画像の解像度(dpi)が指定されていると思いますが、このdpiがWindows系(96dpi)とMac系(72dpi)があって、このdpiにより表示する大きさも変わってしまうような気がしました。
【2013/01/15 20:58】 URL | Akira #- [ 編集]


申し訳ありません、自己解決いたしました。
DrawImg()内、以下の修正で表示することができました。

g.DrawImage(bmp, 0, 0);

g.DrawImage(bmp, 0, 0,bmp.Width,bmp.Height);

大変失礼いたしました。
【2013/01/15 19:32】 URL | AA-12 #- [ 編集]


お世話になっております。

こちらのサンプルコードをそのままDLし、
動作を確認しようとしたのですが、同じ画像サイズのものでも
異なる大きさで表示されてしまう場合があるようなのですが
これの原因はどこにあるのでしょうか。

Windows XPのマイピクチャにサンプルとしてある
「Blue Hills.jpg」でこの現象を確認しました。

よろしければご回答をお願いいたします。


【2013/01/15 18:53】 URL | AA-12 #- [ 編集]


早速のご回答ありがとうございます。
ご教示いただいた内容で、座標および輝度値を算出することができました。
本当にありがとうございました。

C++CLIの記事が少なく、非常に参考になります。
今後も記事の更新楽しみにしております。
【2011/04/13 23:09】 URL | @yoshi #- [ 編集]


@yoshiさん、コメント頂きありがとうございます。

画像の輝度値を取得したいという事ですが、ここでのサンプルではアフィン変換の行列で
画像データの座標→ピクチャボックスへの座標
へ変換しています。
おそらくしたい事はピクチャボックスの座標(e->X,e->Yなど?)から画像データの座標を取得したいと思うので、
ピクチャボックスへの座標→画像データの座標
へのアフィン変換の行列が分かれば、画像データ上の座標は取得できます。
この変換の行列はmatの逆行列なので、mat->Invert() とすれば逆行列が求まります。
(逆行列の結果は、元のmatへ上書きされるので、ご注意下さい。)

あとは、この逆行列の各要素(mat->Elements[0~5])を参照して、
ピクチャボックスへの座標→画像データの座標
の変換(変換の関数は無いので、自分でプログラムします)をすれば画像データ上の座標が求まるので、ビットマップの輝度値を参照すれば良いと思います。
(参考ページ)
http://imagingsolution.blog107.fc2.com/blog-entry-285.html
http://imagingsolution.blog107.fc2.com/blog-entry-40.html
【2011/04/13 00:11】 URL | Akira #- [ 編集]


いつも大変参考にさせていただいてます。
C++CLIを勉強しており、このページのサンプルコードC++CLIに移植しました。
勉強に画像の座標、輝度値を取得したいと思ったのですが、
拡大、縮小した画像のものを取得する方法がわからず、詰まってしまいました。
何かヒントをいただけないでしょうか。
ご助言いただけると幸いです。
【2011/04/12 23:25】 URL | @yoshi #- [ 編集]


この記事に対するコメントの投稿














管理者にだけ表示を許可する


この記事に対するトラックバック
トラックバックURL
→http://imagingsolution.blog107.fc2.com/tb.php/287-69b6d532
この記事にトラックバックする(FC2ブログユーザー)

現在の閲覧者数: / 合計