24小时热门版块排行榜    

查看: 1996  |  回复: 5

lucien910

银虫 (正式写手)

[求助] qt中使用opencv,编译正确,运行时结果不显示,求解决方法

下图是程序和运行结果,只显示一个黑窗口,结果什么的不显示。。。令人捉急,到底咋回事啊。。。。。

图一:不显示M结果
图二:不显示namewindow和图像

qt中使用opencv,编译正确,运行时结果不显示,求解决方法
X`[]AQ3UR3EBS)ZH$Q{Z1C3.jpg


qt中使用opencv,编译正确,运行时结果不显示,求解决方法-1
QQ图片20151119114927.png
回复此楼

» 猜你喜欢

青春不过期
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yqtx528

银虫 (初入文坛)

我记得好像新版的可以不用 namedWindow
可以直接imshow

windows上QT+opencv 确实很容易出问题  我已经很久没用了  现在在linux下用QT+opencv …

当时也出现过类似的问题,具体原因已经不记得了  运行配置那块儿好像有个 选项 表示在哪运行 你可以试试

发自小木虫Android客户端

» 本帖已获得的红花(最新10朵)

2楼2015-11-19 12:30:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

YumiMaomao

新虫 (初入文坛)

检查图像路径是否正确
cvWaitKey的等待时间设置长一些

发自小木虫Android客户端
3楼2015-11-19 14:11:30
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lucien910

银虫 (正式写手)

送红花一朵
引用回帖:
2楼: Originally posted by yqtx528 at 2015-11-19 12:30:17
我记得好像新版的可以不用 namedWindow
可以直接imshow
windows上QT+opencv 确实很容易出问题  我已经很久没用了  现在在linux下用QT+opencv …
当时也出现过类似的问题,具体原因已经不记得了  运行配置那块儿好像 ...

谢谢,解决了,在运行设置上将“在中断运行”去了就行了

送朵红花。。。
另外,现在实际工程中用的linux下比较多吗?
在Linux下开发的话是不是在电脑上还得安装一个模拟器?
青春不过期
4楼2015-11-19 14:42:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lucien910

银虫 (正式写手)

引用回帖:
3楼: Originally posted by YumiMaomao at 2015-11-19 14:11:30
检查图像路径是否正确
cvWaitKey的等待时间设置长一些

路径得改成\\,不能\,谢啦
青春不过期
5楼2015-11-19 14:42:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lucien910

银虫 (正式写手)

帮忙分析下一个程序(opencv程序)


int main( int argc, char** argv )
{
   namedWindow( window_name, CV_WINDOW_AUTOSIZE );

   /// 载入原图像
   src = imread( "D://Qtimage//bh.jpg", 1 );

   if( display_caption( "Original Image" ) != 0 ) { return 0; }
   dst = src.clone();
   if( display_dst( DELAY_CAPTION ) != 0 ) { return 0; }

     waitKey(0);
     return 0;
}




int display_caption( char* caption )
{
   dst = Mat::zeros( src.size(), src.type() );
   putText( dst, caption,
            Point( src.cols/4, src.rows/2),
            CV_FONT_HERSHEY_COMPLEX, 1, Scalar(255, 255, 255) );

   imshow( window_name, dst );
   int c = waitKey( DELAY_CAPTION );
   if( c >= 0 ) { return -1; }
   return 0;
  }

  int display_dst( int delay )
  {
    imshow( window_name, dst );
    int c = waitKey ( delay );
    if( c >= 0 ) { return -1; }
    return 0;
  }


程序效果是先显示一段时间的“original image ” 图标,然后在显示一段时间的图像(scr),我搞不清楚他的延时机制,比如if( display_caption( "Original Image" ) != 0 ) { return 0; }这句话怎么就能使得“original image”图标延时给定的时间然后自动消失进而显示图片呢?他的display 函数什么时候返回0什么时候返回-1,?  if( display_caption( "Original Image" ) != 0 ) { return 0; }中return 0是啥意思?
青春不过期
6楼2015-11-19 20:36:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 lucien910 的主题更新
信息提示
请填处理意见