2012-02-14 71 views
1

我想在OpenCV Mat中绘制一个简单的矩形,当单击wxbutton时,但程序崩溃时调用矩形函数。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的构造函数中,并且工作的很好。如果我评论矩形功能一切正常(它显示一个黑色的图像)。

我有这个问题两天了,我原来的问题是我不能warpAffine图像,因为它也坠毁。

我可以将图像与

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

画,我知道我可以循环来绘制矩形做了。

我的环境是Windows 7 64位,OpenCV的2.3.1,wxWidgets的2.8.12和代码块10.05

任何帮助和想法表示赞赏,感谢 。

---编辑----

我已经试过功能矩形,warpAffine和putText和三个坠毁内OnButtonClick调用时。功能线和圆形工作正常。

回答

0

看起来问题是在矩形例程中。这是OpenCV中的东西吗?或者一个wxFrameFrame的方法?

我会尝试的第一件事是看看矩形是否遇到问题,并且一旦调用它就会通过自动超出范围。

试试这个

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事件中写入一个图像(如果我把矩形,warpAffine,putText等程序崩溃)。 – 2012-02-14 14:34:28

+0

然后你需要一个opencv专家。你应该在你的问题中提供关于其他方法的额外信息,所以很明显这是一个普遍问题,不仅仅是矩形或代码。 – ravenspoint 2012-02-14 15:00:47

+0

好的,我编辑了这个问题,谢谢你的消化 – 2012-02-14 15:50:23