C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[5]: 画像から多角形の矩形の切り出し、切り抜き


(過去ログ 51 を表示中)

[トピック内 6 記事 (1 - 6 表示)]  << 0 >>

■28350 / inTopicNo.1)  画像から多角形の矩形の切り出し、切り抜き
  
□投稿者/ ふくちゃん (2回)-(2008/11/25(Tue) 09:55:32)

分類:[VB.NET/VB2005 以降] 

いつもお世話になっています。
vb6.0にて開発を行っています。

ネットで検索など行いましたが、方法がわかりませんでしたので、教えてください。

教えていただきたいのは、画像から多角形の矩形の切り出し、切り抜きについてです。


具体的には、1枚のBMP画像ファイルのRowデータ(画像情報)を多角形で切り出しor切り抜きする方法です。
現在切り出したい交点の情報を、右回りor左回りで最初と最後の座標がつながる点列で持っています。
各点列が交差することはありません。

たとえば、100×100の画像から、凸(50×50)の図形を切り出し、
凸以外の部分は白く塗りつぶし、50×50の画像ファイルとして保存したいです。

よろしくお願いいたします。





引用返信 編集キー/
■28366 / inTopicNo.2)  Re[1]: 画像から多角形の矩形の切り出し、切り抜き
□投稿者/ たくボン (74回)-(2008/11/25(Tue) 12:49:33)
No28350 (ふくちゃん さん) に返信
> vb6.0にて開発を行っています。
> 現在切り出したい交点の情報を、右回りor左回りで最初と最後の座標がつながる点列で持っています。
> たとえば、100×100の画像から、凸(50×50)の図形を切り出し、

閉じた多角形の描画をVBから操作するならAPIを呼ぶのがいいかも。
GDIのPlygon系のAPIを調べてみるといいかな。

この辺を参考にしてみてください。
http://wisdom.sakura .ne.jp/system/winapi/win32/win29.html

#なんかsakura .ne.jpが弾かれるので、間の空白を削除してくださいw
引用返信 編集キー/
■28371 / inTopicNo.3)  Re[2]: 画像から多角形の矩形の切り出し、切り抜き
□投稿者/ ふくちゃん (4回)-(2008/11/25(Tue) 13:16:45)
サイト拝見しました。

つまりは内部で用意したHDCに、GDIのメソッドを呼び出して絵を描き、
その画像データを取得し、対象エリアを切り出したり塗りつぶしたりするということでしょうか?


No28366 (たくボン さん) に返信
> ■No28350 (ふくちゃん さん) に返信
>>vb6.0にて開発を行っています。
>>現在切り出したい交点の情報を、右回りor左回りで最初と最後の座標がつながる点列で持っています。
>>たとえば、100×100の画像から、凸(50×50)の図形を切り出し、
>
> 閉じた多角形の描画をVBから操作するならAPIを呼ぶのがいいかも。
> GDIのPlygon系のAPIを調べてみるといいかな。
>
> この辺を参考にしてみてください。
> http://wisdom.sakura .ne.jp/system/winapi/win32/win29.html
>
> #なんかsakura .ne.jpが弾かれるので、間の空白を削除してくださいw
引用返信 編集キー/
■28378 / inTopicNo.4)  Re[3]: 画像から多角形の矩形の切り出し、切り抜き
□投稿者/ たくボン (76回)-(2008/11/25(Tue) 14:04:33)
No28371 (ふくちゃん さん) に返信
> サイト拝見しました。
>
> つまりは内部で用意したHDCに、GDIのメソッドを呼び出して絵を描き、
> その画像データを取得し、対象エリアを切り出したり塗りつぶしたりするということでしょうか?

PictureBox等で画像を読み込みしている場合は、hDCプロパティが使えます。(ただし、AutoRedrawがFalseの場合のみ)、使わないのであればGetDCでデバイスコンテキストを取得してください。
切り出しやその他の処理を多角形の領域に対して行いたいのでを行いたいのであれば、CreatePolygonRgn()やCreatePolyPolygonRgn()を使ってください。

Plygon系のAPIを少しは調べてみましたか?簡単なサンプルでもいいので作ってみましたか?
引用返信 編集キー/
■28445 / inTopicNo.5)  Re[4]: 画像から多角形の矩形の切り出し、切り抜き
□投稿者/ ふくちゃん (5回)-(2008/11/26(Wed) 12:20:44)
No28378 (たくボン さん) に返信
> ■No28371 (ふくちゃん さん) に返信
>>サイト拝見しました。
>>
>>つまりは内部で用意したHDCに、GDIのメソッドを呼び出して絵を描き、
>>その画像データを取得し、対象エリアを切り出したり塗りつぶしたりするということでしょうか?
>
> PictureBox等で画像を読み込みしている場合は、hDCプロパティが使えます。(ただし、AutoRedrawがFalseの場合のみ)、使わないのであればGetDCでデバイスコンテキストを取得してください。
> 切り出しやその他の処理を多角形の領域に対して行いたいのでを行いたいのであれば、CreatePolygonRgn()やCreatePolyPolygonRgn()を使ってください。
>
> Plygon系のAPIを少しは調べてみましたか?簡単なサンプルでもいいので作ってみましたか?


画像処理だけでなんとかできないものかと悩んでおりましたので、
GetDCでデバイスコンテキストを取得してそこに書くなどは考慮しておりませんでした。

デバイスコンテキストに書き、うまくマージする方法で検討してみます。

引用返信 編集キー/
■28479 / inTopicNo.6)  Re[5]: 画像から多角形の矩形の切り出し、切り抜き
□投稿者/ ふくちゃん (6回)-(2008/11/26(Wed) 20:58:40)
レイという考え方もあるそうですね。
1行中に、矩形との交点が何箇所あるかを数え、
奇数個目 偶数個目 という判断で内側外側を判断し、
切り出す方法だそうです。

双方試してみます。


No28445 (ふくちゃん さん) に返信
> ■No28378 (たくボン さん) に返信
>>■No28371 (ふくちゃん さん) に返信
> >>サイト拝見しました。
> >>
> >>つまりは内部で用意したHDCに、GDIのメソッドを呼び出して絵を描き、
> >>その画像データを取得し、対象エリアを切り出したり塗りつぶしたりするということでしょうか?
>>
>>PictureBox等で画像を読み込みしている場合は、hDCプロパティが使えます。(ただし、AutoRedrawがFalseの場合のみ)、使わないのであればGetDCでデバイスコンテキストを取得してください。
>>切り出しやその他の処理を多角形の領域に対して行いたいのでを行いたいのであれば、CreatePolygonRgn()やCreatePolyPolygonRgn()を使ってください。
>>
>>Plygon系のAPIを少しは調べてみましたか?簡単なサンプルでもいいので作ってみましたか?
>
>
> 画像処理だけでなんとかできないものかと悩んでおりましたので、
> GetDCでデバイスコンテキストを取得してそこに書くなどは考慮しておりませんでした。
>
> デバイスコンテキストに書き、うまくマージする方法で検討してみます。
>
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -