【问题标题】:trying to implement the canny edge using opencv on qt creator [closed]尝试在 qt creator 上使用 opencv 实现精明边缘 [关闭]
【发布时间】:2014-06-12 15:38:03
【问题描述】:

我正在尝试使用 qt gui 中的 opencv 函数将图像转换为 canny 图像。当我按下 gui 按钮将原始图像转换为 canny 时,程序在发布时崩溃,但在调试模式下显示错误 R6010。

void MainWindow::edgeImage()
    {
    IplImage *image1 =cvLoadImage("Desert.jpg");
    IplImage *Gray = cvCreateImage( cvGetSize(image1), IPL_DEPTH_8U, 1 );
    cvCvtColor(image1, Gray, CV_RGB2GRAY);
    IplImage *Edge = cvCreateImage( cvGetSize(image1), IPL_DEPTH_8U, 1 );
    cvCanny( Gray, Edge, 10, 100 );
    ui->label_2->setPixmap(QPixmap::fromImage(*IplImage2QImage(Edge))  ;           
    }

提前谢谢你

【问题讨论】:

  • 您不应使用 opencv 已弃用的 c-api,而应使用 c++ api (cv::Mat)。
  • tqu u berak 我得到了答案

标签: qt opencv


【解决方案1】:

我做了一些小改动,效果很好

void MainWindow::edgeImage()
{
image =cvLoadImage(FileName.toLocal8Bit().data());
Gray = cvCreateImage(cvSize(image->width,image->height),IPL_DEPTH_8U,1 );
cvCvtColor(image, Gray, CV_RGB2GRAY);
canny= cvCreateImage(cvSize(image->width,image->height),IPL_DEPTH_8U,1 );
cvCanny(Gray,canny,50,150,3);
QImage imgCanny = QImage((const unsigned char*)canny->imageData,canny->width,canny->height,QImage::Format_Indexed8);
imgCanny.setPixel(0,0,qRgb(0,0,0));
ui->label_3->setPixmap(QPixmap::fromImage(imgCanny).scaled(ui->label_3->size()));
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-11
    • 1970-01-01
    • 2017-06-13
    • 2018-12-06
    • 1970-01-01
    • 2010-11-05
    • 2012-08-20
    相关资源
    最近更新 更多