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

わんくま同盟

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

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

ツリー一括表示

別な方法でカメラと静止画について /しろ (17/09/08(Fri) 07:49) #85062
Re[1]: 別な方法でカメラと静止画について /774RR (17/09/08(Fri) 14:17) #85068
  ├ Re[2]: 別な方法でカメラと静止画について /しろ (17/09/12(Tue) 07:41) #85115
  └ Re[2]: 別な方法でカメラと静止画について /Jitta (17/09/12(Tue) 07:48) #85116
    └ Re[3]: 別な方法でカメラと静止画について /しろ (17/09/12(Tue) 07:55) #85117
      └ Re[4]: 別な方法でカメラと静止画について /Jitta (17/09/12(Tue) 22:28) #85141
        └ Re[5]: 別な方法でカメラと静止画について /しろ (17/09/13(Wed) 19:45) #85148
          ├ Re[6]: 別な方法でカメラと静止画について /Azulean (17/09/13(Wed) 21:35) #85151
          └ Re[6]: 別な方法でカメラと静止画について /Jitta (17/09/15(Fri) 14:51) #85162
            └ Re[7]: 別な方法でカメラと静止画について /しろ (17/09/17(Sun) 21:52) #85175
              └ Re[8]: 別な方法でカメラと静止画について /Azulean (17/09/18(Mon) 07:47) #85177
                └ Re[9]: 別な方法でカメラと静止画について /しろ (17/09/18(Mon) 11:07) #85178
                  └ Re[10]: 別な方法でカメラと静止画について /しろ (17/09/18(Mon) 11:47) #85179
                    └ Re[11]: 別な方法でカメラと静止画について /Jitta (17/09/18(Mon) 14:33) #85180
                      └ Re[12]: 別な方法でカメラと静止画について /Jitta (17/09/18(Mon) 14:39) #85181
                        └ Re[13]: 別な方法でカメラと静止画について /しろ (17/09/18(Mon) 21:44) #85189 解決済み


親記事 / ▼[ 85068 ]
■85062 / 親階層)  別な方法でカメラと静止画について
□投稿者/ しろ (9回)-(2017/09/08(Fri) 07:49:03)

分類:[.NET 全般] 

http://bbs.wankuma.com/index.cgi?mode=al2&namber=84974
↑と同じような内容ですが前の内容でもできないことを無いのですが
アプリのライセンスとかがあり使えないので別な方法はないでしょうか?
出来れば無料でカメラの映像を静止画にしたりするのとかないですか?

[ □ Tree ] 返信 編集キー/

▲[ 85062 ] / ▼[ 85115 ] ▼[ 85116 ]
■85068 / 1階層)  Re[1]: 別な方法でカメラと静止画について
□投稿者/ 774RR (567回)-(2017/09/08(Fri) 14:17:00)
動画ファイルから静止画なら opencv とか ffmpeg とか vfw とか
(native/C++ だけど pinvoke すれば OK でも COM なのか・・・)

カメラから直接静止画取得なら DirectShow も使えそう。ちょろっと検索して見つかったのはたとえば
http://mobiquitous.com/programming/usbcamera.html
古い記事だから今通用するかは知らない
DirectShow.NET なんてのもあるのか・・・
[ 親 85062 / □ Tree ] 返信 編集キー/

▲[ 85068 ] / 返信無し
■85115 / 2階層)  Re[2]: 別な方法でカメラと静止画について
□投稿者/ しろ (10回)-(2017/09/12(Tue) 07:41:00)
No85068 (774RR さん) に返信
> 動画ファイルから静止画なら opencv とか ffmpeg とか vfw とか
> (native/C++ だけど pinvoke すれば OK でも COM なのか・・・)
>
> カメラから直接静止画取得なら DirectShow も使えそう。ちょろっと検索して見つかったのはたとえば
> http://mobiquitous.com/programming/usbcamera.html
> 古い記事だから今通用するかは知らない
> DirectShow.NET なんてのもあるのか・・・
お返事ありがとうございます
このプログラムを色々試しているのですがどうしてもエラーが出ます
using DShowNET;
using DShowNET.Device;
DsEvCode code;  ←この部分
どうしたらよいでしょうか?

[ 親 85062 / □ Tree ] 返信 編集キー/

▲[ 85068 ] / ▼[ 85117 ]
■85116 / 2階層)  Re[2]: 別な方法でカメラと静止画について
□投稿者/ Jitta (308回)-(2017/09/12(Tue) 07:48:43)
No85068 (774RR さん) に返信
> 動画ファイルから静止画なら opencv とか ffmpeg とか vfw とか
> (native/C++ だけど pinvoke すれば OK でも COM なのか・・・)

OpenCvSharp という選択肢
[ 親 85062 / □ Tree ] 返信 編集キー/

▲[ 85116 ] / ▼[ 85141 ]
■85117 / 3階層)  Re[3]: 別な方法でカメラと静止画について
□投稿者/ しろ (11回)-(2017/09/12(Tue) 07:55:20)
No85116 (Jitta さん) に返信
> ■No85068 (774RR さん) に返信
>>動画ファイルから静止画なら opencv とか ffmpeg とか vfw とか
>> (native/C++ だけど pinvoke すれば OK でも COM なのか・・・)
>
> OpenCvSharp という選択肢
色々選択肢はあると思いますが使い方がわかりません^^;

[ 親 85062 / □ Tree ] 返信 編集キー/

▲[ 85117 ] / ▼[ 85148 ]
■85141 / 4階層)  Re[4]: 別な方法でカメラと静止画について
□投稿者/ Jitta (310回)-(2017/09/12(Tue) 22:28:55)
No85117 (しろ さん) に返信
> ■No85116 (Jitta さん) に返信
>>■No85068 (774RR さん) に返信
> >>動画ファイルから静止画なら opencv とか ffmpeg とか vfw とか
> >> (native/C++ だけど pinvoke すれば OK でも COM なのか・・・)
>>
>>OpenCvSharp という選択肢
> 色々選択肢はあると思いますが使い方がわかりません^^;

わからないから何をしましたか?
わからないから放っておいたら、わからないままですよ。

というか、何を質問しているのかわからない。
質問に至る背景は?
「アプリのライセンスとかがあり、使えない」って、意味わからん。
じゃ、何、あるいはどういうものなら使えるの?
ここにコードを掲載したとして、
「使うならライセンス料払ってね」
と言われたらどうするの?
同じ背景をもって動いているんじゃないのだから、
背景をキチンと説明してください。
[ 親 85062 / □ Tree ] 返信 編集キー/

▲[ 85141 ] / ▼[ 85151 ] ▼[ 85162 ]
■85148 / 5階層)  Re[5]: 別な方法でカメラと静止画について
□投稿者/ しろ (15回)-(2017/09/13(Wed) 19:45:52)
No85141 (Jitta さん) に返信
> ■No85117 (しろ さん) に返信
>>■No85116 (Jitta さん) に返信
> >>■No85068 (774RR さん) に返信
ちょと質問ですが>>OpenCvSharp という選択肢って
やってみましたがVisual Studio 2017のバージョンだと
たいようしていないのかできないのですが?
[ 親 85062 / □ Tree ] 返信 編集キー/

▲[ 85148 ] / 返信無し
■85151 / 6階層)  Re[6]: 別な方法でカメラと静止画について
□投稿者/ Azulean (862回)-(2017/09/13(Wed) 21:35:51)
No85148 (しろ さん) に返信
> ちょと質問ですが>>OpenCvSharp という選択肢って
> やってみましたがVisual Studio 2017のバージョンだと
> たいようしていないのかできないのですが?

質問の意味がわかりませんが…。
何か参考にされたページがあるのであれば、それを明示した上で具体的に期待結果と、実際の結果を言及してください。

今後も質問を続けていくのであれば、一度読んでいただいた方が良いと思います。
http://www.hyuki.com/writing/techask.html
[ 親 85062 / □ Tree ] 返信 編集キー/

▲[ 85148 ] / ▼[ 85175 ]
■85162 / 6階層)  Re[6]: 別な方法でカメラと静止画について
□投稿者/ Jitta (312回)-(2017/09/15(Fri) 14:51:46)
No85148 (しろ さん) に返信
> やってみましたがVisual Studio 2017のバージョンだと
> たいようしていないのかできないのですが?

「できない」を説明してください。

これを参考に、これを、どうした。
こういう結果を期待したが、このような結果になった。

「こそあど」を埋めてください。
[ 親 85062 / □ Tree ] 返信 編集キー/

▲[ 85162 ] / ▼[ 85177 ]
■85175 / 7階層)  Re[7]: 別な方法でカメラと静止画について
□投稿者/ しろ (17回)-(2017/09/17(Sun) 21:52:35)
No85162 (Jitta さん) に返信
> ■No85148 (しろ さん) に返信

> ちょと質問ですが>>OpenCvSharp という選択肢って。
この返事でいろいろ自分で調べてみてvbで出来るサイトを
見つけました。
Imports AForge.Video
Imports AForge.Video.DirectShow

Public Class Form1

Dim _videoDevices As FilterInfoCollection

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
'ビデオデバイス一覧を表示する
_videoDevices = New FilterInfoCollection(FilterCategory.VideoInputDevice)

ComboBox1.Items.Clear()
If _videoDevices.Count <> 0 Then
For Each device In _videoDevices
ComboBox1.Items.Add(device.Name)
Next
ComboBox1.SelectedIndex = 1
End If
End Sub

Dim _videoSource As VideoCaptureDevice = Nothing



'ビデオデバイス取得画像表示
Private Sub Video_NewFrame(sender As Object, eventArgs As NewFrameEventArgs)
Dim img = DirectCast(eventArgs.Frame.Clone(), Bitmap)
PictureBox1.Image = img

End Sub

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
'USBビデオデバイスに接続

If ComboBox1.Items.Count = 0 Then
Return
End If

Dim MonikerString = _videoDevices(ComboBox1.SelectedIndex).MonikerString '最初のビデオデバイスを使用

_videoSource = New VideoCaptureDevice(MonikerString)
AddHandler _videoSource.NewFrame, AddressOf Me.Video_NewFrame
_videoSource.Start()
End Sub

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
'USBビデオデバイス停止
If _videoSource Is Nothing Then
Return
End If

If _videoSource.IsRunning Then
_videoSource.SignalToStop() 'ビデオデバイスの停止
_videoSource.WaitForStop() '完全に停止するまで待つ
_videoSource = Nothing
End If
End Sub

Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
' 自身のフォームを閉じる
Me.Close()

End Sub

Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click


' Dim g As Graphics = PictureBox1.CreateGraphics()
PictureBox1.Image = New Bitmap(PictureBox1.ClientSize.Width, PictureBox1.ClientSize.Height)
Dim g As Graphics = Graphics.FromImage(PictureBox1.Image)
g.DrawLine(Pens.Black, 0, 0, 100, 100)
g.Dispose()

PictureBox1.Image.Save("C:\test.jpg",
Imaging.ImageFormat.Jpeg)

End Sub
End Class


C#でも同じようにできると思いますがまだまだ勉強中です。
このプログラムを参考にまた静止画を保存させるプログラム
部分を作っているのですがC#のやり方と違うのか静止画の
保存がうまくできません。このプログラムで静止画の保存
する場合はどうしたらいいでしょうか?

[ 親 85062 / □ Tree ] 返信 編集キー/

▲[ 85175 ] / ▼[ 85178 ]
■85177 / 8階層)  Re[8]: 別な方法でカメラと静止画について
□投稿者/ Azulean (864回)-(2017/09/18(Mon) 07:47:23)
No85175 (しろ さん) に返信
> この返事でいろいろ自分で調べてみてvbで出来るサイトを
> 見つけました。

そういう話をされるのであれば、出典を書いてください。
以下のサイトですよね?
http://note.websmil.com/vb/aforge/vb-net-aforge-usb%E3%82%AB%E3%83%A1%E3%83%A9%E7%94%BB%E5%83%8F%E8%A1%A8%E7%A4%BA

(サンプルコードとはいえ、著作権があるので、出典を明示した引用でない場合は抵触する可能性があります)

> このプログラムを参考にまた静止画を保存させるプログラム
> 部分を作っているのですがC#のやり方と違うのか静止画の
> 保存がうまくできません。このプログラムで静止画の保存
> する場合はどうしたらいいでしょうか?

Button3 および Button4 が独自コードで、今回の疑問は Button4 の話だと捉えています。

>         '  Dim g As Graphics = PictureBox1.CreateGraphics()
>         PictureBox1.Image = New Bitmap(PictureBox1.ClientSize.Width, PictureBox1.ClientSize.Height)

元の PictureBox1.Image に動画の画像が入っているはずなのに、それを全く利用せずに New Bitmap していたら、消えて当然ですが…。

[ 親 85062 / □ Tree ] 返信 編集キー/

▲[ 85177 ] / ▼[ 85179 ]
■85178 / 9階層)  Re[9]: 別な方法でカメラと静止画について
□投稿者/ しろ (19回)-(2017/09/18(Mon) 11:07:35)
No85177 (Azulean さん) に返信
> ■No85175 (しろ さん) に返信
考えすぎてたみたいですね
ただ単にPictureBox1.Image入っているのに色々しようとして
ダメにしてたんですね^^:
'PictureBox1に表示されている画像を保存する
PictureBox1.Image.Save("C:\test\new1.jpg",
System.Drawing.Imaging.ImageFormat.Jpeg)


[ 親 85062 / □ Tree ] 返信 編集キー/

▲[ 85178 ] / ▼[ 85180 ]
■85179 / 10階層)  Re[10]: 別な方法でカメラと静止画について
□投稿者/ しろ (20回)-(2017/09/18(Mon) 11:47:35)
No85178 (しろ さん) に返信
> ■No85177 (Azulean さん) に返信
>>■No85175 (しろ さん) に返信
> 考えすぎてたみたいですね
> ただ単にPictureBox1.Image入っているのに色々しようとして
> ダメにしてたんですね^^:
> 'PictureBox1に表示されている画像を保存する
> PictureBox1.Image.Save("C:\test\new1.jpg",
> System.Drawing.Imaging.ImageFormat.Jpeg)
>
保存する方法は分かりましたがファイルの保存先と日付と時刻の指定を
しているのですが保存先の指定がなかなかできません
前回もC# やさたみたいに別々で分けて指定すると思いやっているのですが
なかなかうまくいきません。
System.NotSupportedException: '指定されたパスのフォーマットはサポートされていません。'
とエラーになってしまいます

Dim ro As String = "C:\test\new1\"


Dim dt = DateTime.Now

formatteddate = dt.ToString("C:\test\yyyy年MM月dd日hh時mm秒ss分")



System.NotSupportedException: '指定されたパスのフォーマットはサポートされていません。'
とエラーになってしまいます↓どうしたらよいでしょうか?

PictureBox1.Image.Save(ro + formatteddate + ".jpg", System.Drawing.Imaging.ImageFormat.Jpeg)


[ 親 85062 / □ Tree ] 返信 編集キー/

▲[ 85179 ] / ▼[ 85181 ]
■85180 / 11階層)  Re[11]: 別な方法でカメラと静止画について
□投稿者/ Jitta (313回)-(2017/09/18(Mon) 14:33:57)
2017/09/18(Mon) 14:40:52 編集(投稿者)
2017/09/18(Mon) 14:38:06 編集(投稿者)

No85175 (しろ さん) に返信

 私は「これを参考に、これを、どうした。こういう結果を期待したが、このような結果になった。"こそあど"を埋めてください。」
と書いているのですが。
コードを出されても困ります。コードは正しいが、望んでいる結果がコードからは得られないことが多々あります。
「こういう結果を期待した」に対して「このような結果になった」、期待と結果の差がわかって初めて何が間違っているのかを推測できます。
ということが、Azuleanさんが提示されている結城さんのページにも書いてあります。



No85179 (しろ さん) に返信
> 保存する方法は分かりましたがファイルの保存先と日付と時刻の指定を
> しているのですが保存先の指定がなかなかできません
> 前回もC# やさたみたいに別々で分けて指定すると思いやっているのですが
> なかなかうまくいきません。
> System.NotSupportedException: '指定されたパスのフォーマットはサポートされていません。'
> とエラーになってしまいます
>
> Dim ro As String = "C:\test\new1\"
>
>
> Dim dt = DateTime.Now
>
> formatteddate = dt.ToString("C:\test\yyyy年MM月dd日hh時mm秒ss分")
>
>
>
> System.NotSupportedException: '指定されたパスのフォーマットはサポートされていません。'
> とエラーになってしまいます↓どうしたらよいでしょうか?
>
> PictureBox1.Image.Save(ro + formatteddate + ".jpg", System.Drawing.Imaging.ImageFormat.Jpeg)
>

まずは、

ro = "C:\test\new1\2017年09月10日12時01分20秒.jpg"
PictureBox1.Image.Save(ro, System.Drawing.Imaging.ImageFormat.Jpeg)

と、保存したいファイル名を直接文字列として指定した場合、どうなりますか。
これが期待通りに保存できるなら、作成している文字列がおかしい、ということです。

次に、

Dim fileName as String = ro + formatteddate + ".jpg"
MessageBox.Show(fileName)
PictureBox1.Image.Save(fileName , System.Drawing.Imaging.ImageFormat.Jpeg)

の様にして、fileName が期待する文字列になっているか、確認します。

・・・ということを、デバッガでステップ実行しながら変数の内容を確認していくのが普通なのですが。



まぁ、保存するファイル名が「C:\test\new1\C:\test\2017年...」と、ドライブを複数回指定しているんだと思いますよ。
[ 親 85062 / □ Tree ] 返信 編集キー/

▲[ 85180 ] / ▼[ 85189 ]
■85181 / 12階層)  Re[12]: 別な方法でカメラと静止画について
□投稿者/ Jitta (314回)-(2017/09/18(Mon) 14:39:36)
2017/09/18(Mon) 14:40:24 編集(投稿者)

No85180 (Jitta さん) に返信
編集と間違うて投稿してしもうたので削除
[ 親 85062 / □ Tree ] 返信 編集キー/

▲[ 85181 ] / 返信無し
■85189 / 13階層)  Re[13]: 別な方法でカメラと静止画について
□投稿者/ しろ (21回)-(2017/09/18(Mon) 21:44:18)
No85181 (Jitta さん) に返信
> 2017/09/18(Mon) 14:40:24 編集(投稿者)
>
> ■No85180 (Jitta さん) に返信
> 編集と間違うて投稿してしもうたので削除

ありがとうございました。やっとできました!!
解決済み
[ 親 85062 / □ Tree ] 返信 編集キー/


管理者用

- Child Tree -