|
分類:[VB.NET/VB2005 以降]
OpenCVSharpを使ってカメラで写真を撮るプログラムを作成しています。
開発PCではカメラ映像が表示されるのですが、特定のPC(SurfacePro)でアプリを動かすと
カメラ映像が映ってすぐ画面が応答なしになり、固まってしまいます。
開発PCではメモリが増加しているような感じはなく、原因がつかめません。
原因・対策等何か考えられることがありましたらご教授ください。
開発環境:VS2019 VB.NET
ソースコード一部抜粋
Private mat As Mat
Private vc As VideoCapture
Private bmp As Bitmap
Private gp As Graphics
Private intWidth As Integer = 1280
Private intHeight As Integer = 720
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
vc = New VideoCapture(0)
vc.FrameWidth = intWidth
vc.FrameHeight = intHeight
mat = New Mat(intHeight, intWidth, MatType.CV_8UC3)
PictureBox1.Width = intWidth
PictureBox1.Height = intHeight
bmp = New Bitmap(mat.Cols, mat.Rows, CInt(mat.[Step]()), Imaging.PixelFormat.Format24bppRgb, mat.Data)
gp = PictureBox1.CreateGraphics()
BackgroundWorker1.RunWorkerAsync()
End Sub
Private Sub BackgroundWorker1_DoWork(sender As Object, e As DoWorkEventArgs) Handles BackgroundWorker1.DoWork
While Not BackgroundWorker1.CancellationPending
vc.Grab()
NativeMethods.videoio_VideoCapture_operatorRightShift_Mat(vc.CvPtr, mat.CvPtr)
BackgroundWorker1.ReportProgress(0)
End While
End Sub
Private Sub BackgroundWorker1_ProgressChanged(sender As Object, e As ProgressChangedEventArgs) Handles BackgroundWorker1.ProgressChanged
gp.DrawImage(bmp, 0, 0, mat.Width, mat.Height)
End Sub
|