1

ライブ ビデオ フィードでハフ ライン変換を実行しようとしています。最初に、フィードは完全に機能して出力する巧妙なエッジ検出器を介して実行されます。次に、ハフライン変換を介して画像を実行すると、「windows has trigger a breakpoint in openCv.exe」が発生します。フリーズしたプログラムを見ると、プログラムがハフ変換を行った後にフリーズし、ボックスに「Windows has Triggered....」エラーが表示されることがわかります。

何か案は?

コード:

#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include <iostream>
#include <stdio.h>
#include <stdlib.h>

using namespace std;
using namespace cv;

int main(int, char**)
{
    namedWindow( "Edges", CV_WINDOW_NORMAL ); 
    CvCapture* capture = cvCaptureFromCAM(-1);

    Mat frame; 
    Mat out; 
    Mat out2;
    Mat canny;
    Mat hough;
    while(1) {
        frame = cvQueryFrame( capture );
        imshow("Source",frame);
        GaussianBlur( frame, out, Size(5, 5), 0, 0 );
        cvtColor( out ,out2, CV_BGR2GRAY ); // produces out2, a one-channel image (CV_8UC1)
     Canny( out2, canny, 100, 200, 3 ); // the result goes to out2 again,but since it is still one channel it is fine
     imshow( "Canny", canny );


 cvtColor(canny, hough, CV_GRAY2BGR);
  vector<Vec4i> lines;
  HoughLinesP(canny, lines, 1, CV_PI/180, 50, 100, 10 );
  for( size_t i = 0; i < lines.size(); i++ )
  {
   Vec4i l = lines[i];
   //line( hough, Point(l[0], l[1]), Point(l[2], l[3]), Scalar(0,0,255), 3, CV_AA);
   cout << Point(l[0], l[1]) << endl;
   cout << Point(l[2], l[3]) << endl;
  }

  imshow("Lines", hough);

      if( !frame.data ) break;


        char c = cvWaitKey(33);
        if( c == 'c' ) break;
    }
    return 0;
}

ログ出力

'openCV.exe': Loaded 'C:\Users\Aaron\Documents\Visual Studio 2010\Projects\openCV\Release\openCV.exe', Symbols loaded.
'openCV.exe': Loaded 'C:\Windows\SysWOW64\ntdll.dll', Cannot find or open the PDB file
'openCV.exe': Loaded 'C:\Windows\SysWOW64\kernel32.dll', Cannot find or open the PDB file
'openCV.exe': Loaded 'C:\Windows\SysWOW64\KernelBase.dll', Cannot find or open the PDB file
'openCV.exe': Loaded 'C:\Windows\SysWOW64\WRusr.dll', Cannot find or open the PDB file
'openCV.exe': Loaded 'C:\OpenCV\build\x86\vc11\bin\opencv_core246.dll', Cannot find or open the PDB file
'openCV.exe': Loaded 'C:\OpenCV\build\x86\vc11\bin\opencv_imgproc246.dll', Cannot find or open the PDB file
'openCV.exe': Loaded 'C:\OpenCV\build\x86\vc11\bin\opencv_highgui246.dll', Cannot find or open the PDB file
'openCV.exe': Loaded 'C:\Windows\SysWOW64\msvcp100.dll', Cannot find or open the PDB file
'openCV.exe': Loaded 'C:\Windows\SysWOW64\msvcr100.dll', Cannot find or open the PDB file
'openCV.exe': Loaded 'C:\Windows\SysWOW64\msvcrt.dll', Cannot find or open the PDB file
'openCV.exe': Loaded 'C:\Windows\SysWOW64\user32.dll', Cannot find or open the PDB file
'openCV.exe': Loaded 'C:\Windows\SysWOW64\shell32.dll', Cannot find or open the PDB file
'openCV.exe': Loaded 'C:\Windows\SysWOW64\ole32.dll', Cannot find or open the PDB file
'openCV.exe': Loaded 'C:\Windows\SysWOW64\advapi32.dll', Cannot find or open the PDB file
'openCV.exe': Loaded 'C:\Windows\SysWOW64\psapi.dll', Cannot find or open the PDB file
'openCV.exe': Loaded 'C:\Windows\SysWOW64\ws2_32.dll', Cannot find or open the PDB file
'openCV.exe': Loaded 'C:\Windows\SysWOW64\urlmon.dll', Cannot find or open the PDB file
'openCV.exe': Loaded 'C:\Windows\SysWOW64\wininet.dll', Cannot find or open the PDB file
'openCV.exe': Loaded 'C:\Windows\SysWOW64\oleacc.dll', Cannot find or open the PDB file
'openCV.exe': Loaded 'C:\Windows\SysWOW64\rpcrt4.dll', Cannot find or open the PDB file
'openCV.exe': Loaded 'C:\Windows\SysWOW64\oleaut32.dll', Cannot find or open the PDB file
'openCV.exe': Loaded 'C:\Windows\SysWOW64\shlwapi.dll', Cannot find or open the PDB file
'openCV.exe': Loaded 'C:\Windows\SysWOW64\secur32.dll', Cannot find or open the PDB file
'openCV.exe': Loaded 'C:\Windows\SysWOW64\gdi32.dll', Cannot find or open the PDB file
'openCV.exe': Loaded 'C:\Windows\SysWOW64\msimg32.dll', Cannot find or open the PDB file
'openCV.exe': Loaded 'C:\Windows\SysWOW64\msvcp110.dll', Cannot find or open the PDB file
'openCV.exe': Loaded 'C:\Windows\SysWOW64\msvcr110.dll', Cannot find or open the PDB file
'openCV.exe': Loaded 'C:\Windows\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_5.82.9600.16384_none_7c55c866aa0c3ff0\comctl32.dll', Cannot find or open the PDB file
'openCV.exe': Loaded 'C:\Windows\SysWOW64\msvfw32.dll', Cannot find or open the PDB file
'openCV.exe': Loaded 'C:\Windows\SysWOW64\avifil32.dll', Cannot find or open the PDB file
'openCV.exe': Loaded 'C:\Windows\SysWOW64\avicap32.dll', Cannot find or open the PDB file
'openCV.exe': Loaded 'C:\Windows\SysWOW64\combase.dll', Cannot find or open the PDB file
'openCV.exe': Loaded 'C:\Windows\SysWOW64\sechost.dll', Cannot find or open the PDB file
'openCV.exe': Loaded 'C:\Windows\SysWOW64\nsi.dll', Cannot find or open the PDB file
'openCV.exe': Loaded 'C:\Windows\SysWOW64\iertutil.dll', Cannot find or open the PDB file
'openCV.exe': Loaded 'C:\Windows\SysWOW64\sspicli.dll', Cannot find or open the PDB file
'openCV.exe': Loaded 'C:\Windows\SysWOW64\winmm.dll', Cannot find or open the PDB file
'openCV.exe': Loaded 'C:\Windows\SysWOW64\msacm32.dll', Cannot find or open the PDB file
'openCV.exe': Loaded 'C:\Windows\SysWOW64\version.dll', Cannot find or open the PDB file
'openCV.exe': Loaded 'C:\Windows\SysWOW64\cryptbase.dll', Cannot find or open the PDB file
'openCV.exe': Loaded 'C:\Windows\SysWOW64\winmmbase.dll', Cannot find or open the PDB file
'openCV.exe': Loaded 'C:\Windows\SysWOW64\bcryptprimitives.dll', Cannot find or open the PDB file
'openCV.exe': Loaded 'C:\Windows\SysWOW64\cfgmgr32.dll', Cannot find or open the PDB file
'openCV.exe': Loaded 'C:\Windows\SysWOW64\devobj.dll', Cannot find or open the PDB file
'openCV.exe': Loaded 'C:\Windows\SysWOW64\imm32.dll', Cannot find or open the PDB file
'openCV.exe': Loaded 'C:\Windows\SysWOW64\msctf.dll', Cannot find or open the PDB file
'openCV.exe': Loaded 'C:\Windows\SysWOW64\SHCore.dll', Cannot find or open the PDB file
'openCV.exe': Loaded 'C:\Windows\SysWOW64\profapi.dll', Cannot find or open the PDB file
'openCV.exe': Loaded 'C:\Windows\SysWOW64\uxtheme.dll', Cannot find or open the PDB file
'openCV.exe': Loaded 'C:\Windows\SysWOW64\dwmapi.dll', Cannot find or open the PDB file
'openCV.exe': Loaded 'C:\Windows\SysWOW64\kernel.appcore.dll', Cannot find or open the PDB file
'openCV.exe': Loaded 'C:\Windows\SysWOW64\clbcatq.dll', Cannot find or open the PDB file
'openCV.exe': Loaded 'C:\Windows\SysWOW64\devenum.dll', Cannot find or open the PDB file
'openCV.exe': Loaded 'C:\Windows\SysWOW64\setupapi.dll', Cannot find or open the PDB file
'openCV.exe': Loaded 'C:\Windows\SysWOW64\ntmarta.dll', Cannot find or open the PDB file
'openCV.exe': Loaded 'C:\Windows\SysWOW64\wintrust.dll', Cannot find or open the PDB file
'openCV.exe': Loaded 'C:\Windows\SysWOW64\crypt32.dll', Cannot find or open the PDB file
'openCV.exe': Loaded 'C:\Windows\SysWOW64\msasn1.dll', Cannot find or open the PDB file
'openCV.exe': Loaded 'C:\Windows\SysWOW64\msdmo.dll', Cannot find or open the PDB file
'openCV.exe': Loaded 'C:\Windows\SysWOW64\qcap.dll', Cannot find or open the PDB file
'openCV.exe': Loaded 'C:\Windows\SysWOW64\quartz.dll', Cannot find or open the PDB file
'openCV.exe': Loaded 'C:\Windows\SysWOW64\ksproxy.ax', Cannot find or open the PDB file
'openCV.exe': Loaded 'C:\Windows\SysWOW64\ksuser.dll', Cannot find or open the PDB file
'openCV.exe': Loaded 'C:\Windows\SysWOW64\d3d9.dll', Cannot find or open the PDB file
'openCV.exe': Loaded 'C:\Windows\SysWOW64\vidcap.ax', Cannot find or open the PDB file
'openCV.exe': Loaded 'C:\Windows\SysWOW64\Kswdmcap.ax', Cannot find or open the PDB file
'openCV.exe': Loaded 'C:\Windows\SysWOW64\mfc42.dll', Cannot find or open the PDB file
'openCV.exe': Loaded 'C:\Windows\SysWOW64\odbc32.dll', Cannot find or open the PDB file
The thread 'Win32 Thread' (0x1f8) has exited with code 0 (0x0).
'openCV.exe': Loaded 'C:\Windows\SysWOW64\qedit.dll', Cannot find or open the PDB file
'openCV.exe': Loaded 'C:\Windows\SysWOW64\comdlg32.dll', Cannot find or open the PDB file
'openCV.exe': Loaded 'C:\Windows\WinSxS\x86_microsoft.windows.gdiplus_6595b64144ccf1df_1.1.9600.16384_none_dadf89385bc5c7d7\GdiPlus.dll', Cannot find or open the PDB file
'openCV.exe': Loaded 'C:\Windows\SysWOW64\ddraw.dll', Cannot find or open the PDB file
'openCV.exe': Loaded 'C:\Windows\SysWOW64\dciman32.dll', Cannot find or open the PDB file
'openCV.exe': Loaded 'C:\Windows\SysWOW64\nvd3dum.dll', Cannot find or open the PDB file
The thread 'Win32 Thread' (0xccc) has exited with code 0 (0x0).
'openCV.exe': Loaded 'C:\Windows\SysWOW64\powrprof.dll', Cannot find or open the PDB file
'openCV.exe': Loaded 'C:\Windows\SysWOW64\d3dim700.dll', Cannot find or open the PDB file
'openCV.exe': Unloaded 'C:\Windows\SysWOW64\powrprof.dll'
'openCV.exe': Unloaded 'C:\Windows\SysWOW64\nvd3dum.dll'
'openCV.exe': Loaded 'C:\Windows\SysWOW64\nvd3dum.dll', Cannot find or open the PDB file
The thread 'Win32 Thread' (0x1684) has exited with code 0 (0x0).
'openCV.exe': Loaded 'C:\Windows\SysWOW64\powrprof.dll', Cannot find or open the PDB file
'openCV.exe': Unloaded 'C:\Windows\SysWOW64\powrprof.dll'
'openCV.exe': Unloaded 'C:\Windows\SysWOW64\nvd3dum.dll'
'openCV.exe': Loaded 'C:\Windows\SysWOW64\nvd3dum.dll', Cannot find or open the PDB file
The thread 'Win32 Thread' (0xc38) has exited with code 0 (0x0).
'openCV.exe': Loaded 'C:\Windows\SysWOW64\powrprof.dll', Cannot find or open the PDB file
'openCV.exe': Unloaded 'C:\Windows\SysWOW64\powrprof.dll'
'openCV.exe': Unloaded 'C:\Windows\SysWOW64\nvd3dum.dll'
The thread 'Win32 Thread' (0x22b8) has exited with code 1950154752 (0x743d0000).
HEAP[openCV.exe]: Invalid address specified to RtlFreeHeap( 028A0000, 037EBA68 )
Windows has triggered a breakpoint in openCV.exe.

This may be due to a corruption of the heap, which indicates a bug in openCV.exe or any of the DLLs it has loaded.

This may also be due to the user pressing F12 while openCV.exe has focus.

The output window may have more diagnostic information.
HEAP[openCV.exe]: Invalid address specified to RtlFreeHeap( 028A0000, 037ABB28 )
Windows has triggered a breakpoint in openCV.exe.

This may be due to a corruption of the heap, which indicates a bug in openCV.exe or any of the DLLs it has loaded.

This may also be due to the user pressing F12 while openCV.exe has focus.

The output window may have more diagnostic information.
HEAP[openCV.exe]: Invalid address specified to RtlFreeHeap( 028A0000, 037AD0D8 )
Windows has triggered a breakpoint in openCV.exe.

This may be due to a corruption of the heap, which indicates a bug in openCV.exe or any of the DLLs it has loaded.

This may also be due to the user pressing F12 while openCV.exe has focus.

The output window may have more diagnostic information.
The program '[8248] openCV.exe: Native' has exited with code 0 (0x0).
4

1 に答える 1

1

私の経験によると、プログラムが opencv を DLL としてリンクしており、CRT へのリンクが EXE とは異なることが問題だと思います。

したがって、渡すベクトルHoughLinesPは DLL モジュール内のメモリを割り当ててから、外部で解放します。CRT のリンケージが異なるため、メモリ プールも同じではないため、問題が発生します。

プロジェクトのプロパティページ-> C/C++ -> Code Generationに移動し、 Runtime Libraryを opencv プロジェクトと同じ値に変更するだけです。

于 2015-03-04T17:40:24.303 に答える