2012-02-14 8 views
1

wxbuttonをクリックするとOpenCV Matで単純な矩形を描画しようとしていますが、コールするとプログラムがクラッシュします。wxWidgets + OpenCVの矩形クラッシュOnButtonClick()

void wxFrameFrame::OnButton1Click(wxCommandEvent& event) 
{ 
    Mat A(480,640,CV_32F); 
    Point p1(10, 10); 
    Point p2(20,200); 
    rectangle(A, p1, p2, Scalar(255,0,255,0), 0); 

    // Show what you got 
    namedWindow("src", CV_WINDOW_AUTOSIZE); 
    imshow("src", A); 
} 

私はこのコードをコンソールアプリケーションで試しても問題ありません。私はまた、このコードをwxFrameコンストラクタに入れようとしましたが、うまく動作します。私が矩形関数にコメントすると、すべてがOKです(黒い画像が表示されます)。

私は今この問題を2日間持っています。私の元の問題は、あまりにも墜落してしまったのでイメージをwarpAffineできませんでした。

私は

A.at<uchar>(0,0)=255 

で画像に描くことができると私は四角形を描画するためのループのために行うことができます知っています。

私の環境では、Windows 7 64ビット、OpenCVの2.3.1、wxWidgetsの2.8.12およびコードブロック10.05

すべてのヘルプや考え方、評価されて おかげです。

---編集----

私は、機能が長方形warpAffineとputTextを試してみましたし、OnButtonClick内で呼び出されたときに3人は墜落しました。関数の線と円は正常に機能します。

答えて

0

問題は四角形のルーチンのようです。これはOpenCVで何かですか?またはwxFrameFrameのメソッド?

私が試してみたい1つ目のことは、矩形が呼び出されるとすぐに範囲外に出るオートメーションを渡すことに問題があるかどうかを確認することです。

は、あなたの助けのために、この

void wxFrameFrame::OnButton1Click(wxCommandEvent& event) 
{ 
    static Mat A(480,640,CV_32F); 
    static Point p1(10, 10); 
    static Point p2(20,200); 
    static Scaler s(255,0,255,0); 
    static int n = 0; 
    rectangle(A, p1, p2, s, n); 

    ... 
+0

感謝を試してみて、それがあまりにも墜落しました。私の場合、問題はopencvがOnButtonイベントの中に画像を書き込もうとしたときです(私はrectangle、warpAffine、putTextなどを入れればプログラムがクラッシュします)。 –

+0

あなたはopencvエキスパートが必要です。あなたはあなたの質問に他の方法についての追加情報を入れておくべきです、それが矩形かあなたのコードだけでなく一般的な問題であることは明らかです。 – ravenspoint

+0

質問を編集しました。 –