opencv程序可以运行,但是不显示图像,怎么解决?

附程序如下,运行环境为VS2010#include"cv.h"#include"highgui.h"#include"math.h"intmain(intargc,cha... 附程序如下,运行环境为VS2010
#include "cv.h"
#include "highgui.h"
#include "math.h"

int main(int argc, char** argv)
{
IplImage* src = 0;
/* the first command line parameter must be image file name */

if(argc == 2&&(src = cvLoadImage(argv[1],-1))!= 0)
{
IplImage* dst = cvCloneImage(src);
int delta = 1;
int angle = 0;
int opt = 1; //1:旋转加缩放
//0:旋转
double factor;
cvNamedWindow("src",1);
cvShowImage("src",src);

for(;;)
{
float m[6];
//Matrix m looks like:
//
//[m0 m1 m2] ===> [A11 A12 b1]
//[m3 m4 m5] [A21 A22 b2]
//
CvMat M = cvMat(2,3,CV_32F,m);
int w = src->width;
int h = src->height;
if(opt) //旋转加缩放
factor = (cos(angle*CV_PI/180.)+1.05)*2;
else //仅仅旋转
factor = 1;
m[0] = (float)(factor*cos(-angle*2*CV_PI/180.));
m[1] = (float)(factor*sin(-angle*2*CV_PI/180.));
m[3] = -m[1];
m[4] = m[0];
//将旋转中心移至图像中间
m[2] = w*0.5f;
m[5] = h*0.5f;
// dst(x,y) = A*src(x,y)+b
cvGetQuadrangleSubPix(src,dst,&M);
cvNamedWindow("dst",1);
cvShowImage("dst",dst);
if(cvWaitKey(5) == 27)
break;
angle = (int)(angle + delta)%360;
} //for-loop
}
return 0;
}
将图片命名为src放在工程文件夹里,问题如上
展开
 我来答
奇奇怪哥
2013-07-25 · 超过17用户采纳过TA的回答
知道答主
回答量:24
采纳率:0%
帮助的人:31.3万
展开全部
大致看了下,应该是命令行参数配置的问题,即:图像的路径不对,

如果配置不成功,你干脆直接
src = cvLoadImage("(这里就是你图像的全路径,例如d:\\图像.jpg)",-1);

再试试...祝你成功
望念桃pm
2015-11-21
知道答主
回答量:9
采纳率:100%
帮助的人:9675
展开全部
附程序如下,运行环境为VS2010
#include "cv.h"
#include "highgui.h"
#include "math.h"

int main(int argc, char** argv)
{
IplImage* src = 0;
/* the first command line parameter must be image file name */

if(argc == 2&&(src = cvLoadImage(argv[1],-1))!= 0)
{
IplImage* dst = cvCloneImage(src);
int delta = 1;
int angle = 0;
int opt = 1; //1:旋转加缩放
//0:旋转
double factor;
cvNamedWindow("src",1);
cvShowImage("src",src);

for(;;)
{
float m[6];
//Matrix m looks like:
//
//[m0 m1 m2] ===> [A11 A12 b1]
//[m3 m4 m5] [A21 A22 b2]
//
CvMat M = cvMat(2,3,CV_32F,m);
int w = src->width;
int h = src->height;
if(opt) //旋转加缩放
factor = (cos(angle*CV_PI/180.)+1.05)*2;
else //仅仅旋转
factor = 1;
m[0] = (float)(factor*cos(-angle*2*CV_PI/180.));
m[1] = (float)(factor*sin(-angle*2*CV_PI/180.));
m[3] = -m[1];
m[4] = m[0];
//将旋转中心移至图像中间
m[2] = w*0.5f;
m[5] = h*0.5f;
// dst(x,y) = A*src(x,y)+b
cvGetQuadrangleSubPix(src,dst,&M);
cvNamedWindow("dst",1);
cvShowImage("dst",dst);
if(cvWaitKey(5) == 27)
break;
angle = (int)(angle + delta)%360;
} //for-loop
}
return 0;
}
将图片命名为src放在工程文件夹里,问题如上
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bmw1233lcc
2013-07-26
知道答主
回答量:17
采纳率:0%
帮助的人:20.7万
展开全部
加上显示的时间
cvWaitkey();//里边可以加上显示时间
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式