【问题标题】:wxWidgets + OpenCV rectangle crash OnButtonClick()wxWidgets + OpenCV 矩形崩溃 OnButtonClick()
【发布时间】:2012-02-14 10:48:57
【问题描述】:

单击 wxbutton 时,我试图在 OpenCV Mat 中绘制一个简单的矩形,但调用矩形函数时程序崩溃。

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 

我知道我可以做一个 for 循环来绘制矩形。

我的环境是 Windows 7 64 位、OpenCv 2.3.1、wxWidgets 2.8.12 和 CodeBlocks 10.05

感谢任何帮助和想法, 谢谢。

---编辑----

我已经尝试了矩形、warpAffine 和 putText 函数,当在 OnButtonClick 中调用时,这三个函数都崩溃了。函数 line 和 circle 工作正常。

【问题讨论】:

    标签: c++ opencv wxwidgets


    【解决方案1】:

    看起来问题出在矩形例程中。这是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);
    
        ...
    

    【讨论】:

    • 感谢您的帮助,但它也崩溃了。对我来说,问题是当 opencv 尝试在 OnButton 事件中写入图像时(如果我放置矩形、warpAffine、putText 等程序会崩溃)。
    • 你需要一个 opencv 专家。您应该在问题中添加有关其他方法的额外信息,因此很明显这是一个普遍问题,而不仅仅是矩形或您的代码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-22
    • 2012-06-05
    • 1970-01-01
    • 2016-03-12
    • 1970-01-01
    • 2022-09-13
    • 1970-01-01
    相关资源
    最近更新 更多