case语句跳过变量初始化的问题
来源:互联网 发布:淘宝店铺装修首页大图 编辑:程序博客网 时间:2024/05/17 18:14
今天写程序遇到了一个问题,错误如下:
代码如下:
switch(m_Radio_Contour)
{
case 0:
//Sobel算子边缘检测
Ptr<IplImage> pImage=NULL;
Ptr<IplImage> pImgSobelGray=NULL;
Ptr<IplImage> pImg8u=NULL;
Ptr<IplImage> pImg8uSmooth=NULL;
Ptr<IplImage> pImgColor=NULL;
Ptr<IplImage> pImgSobelColor=NULL;
Ptr<IplImage> pImgPlanes[3]={NULL,NULL,NULL};
//创建打开图像的副本,并开闭空间用来存储处理后的结果
pImage=cvCloneImage(img);
pImg8u=cvCreateImage(cvGetSize(img),IPL_DEPTH_8U,1);
pImg8uSmooth=cvCreateImage(cvGetSize(img),IPL_DEPTH_8U,1);
//RGB到GRAY的图像转换
cvCvtColor(pImage,pImg8u,CV_RGB2GRAY);
//图像的高斯滤波
cvSmooth(pImg8u,pImg8uSmooth,CV_GAUSSIAN,3,0,0);
//建立位深为16位的新图像区域,因为Sobel算子要求图像的位深为16位、
pImgSobelGray=cvCreateImage(cvGetSize(pImage),IPL_DEPTH_16S,1);
//计算一阶X方向的图像差分
cvSobel(pImg8uSmooth,pImgSobelGray,0,1,3);
cvConvertScaleAbs(pImgSobelGray,pImg8u,1,0);
cvvNamedWindow("Sobel Gray Image",1);
cvvShowImage("Sobel Gray Image",pImg8u);
………………………………
看了一下网页,是说这个case 语句可能没有被执行到(执行其他case了)导致变量没有初始化而导致接下来的错误,所以需要把变量放到switch前面声明初始化,可是我又不想把初始化放在switch前面,还有一个解决方法,在swith中定义内部变量加括号,就可以了。
switch(m_Radio_Contour)
{
case 0:
{
//Sobel算子边缘检测
Ptr<IplImage> pImage=NULL;
Ptr<IplImage> pImgSobelGray=NULL;
Ptr<IplImage> pImg8u=NULL;
Ptr<IplImage> pImg8uSmooth=NULL;
Ptr<IplImage> pImgColor=NULL;
Ptr<IplImage> pImgSobelColor=NULL;
Ptr<IplImage> pImgPlanes[3]={NULL,NULL,NULL};
//创建打开图像的副本,并开闭空间用来存储处理后的结果
pImage=cvCloneImage(img);
pImg8u=cvCreateImage(cvGetSize(img),IPL_DEPTH_8U,1);
pImg8uSmooth=cvCreateImage(cvGetSize(img),IPL_DEPTH_8U,1);
//RGB到GRAY的图像转换
cvCvtColor(pImage,pImg8u,CV_RGB2GRAY);
//图像的高斯滤波
cvSmooth(pImg8u,pImg8uSmooth,CV_GAUSSIAN,3,0,0);
//建立位深为16位的新图像区域,因为Sobel算子要求图像的位深为16位、
pImgSobelGray=cvCreateImage(cvGetSize(pImage),IPL_DEPTH_16S,1);
//计算一阶X方向的图像差分
cvSobel(pImg8uSmooth,pImgSobelGray,0,1,3);
cvConvertScaleAbs(pImgSobelGray,pImg8u,1,0);
cvvNamedWindow("Sobel Gray Image",1);
cvvShowImage("Sobel Gray Image",pImg8u);
………………………………
}
case 1:
至此,问题解决了。
- case语句跳过变量初始化的问题
- switch语句中case跳过变量初始化的问题
- switch语句中case语句中变量初始化问题!
- 关于C/C++中switch语句case中变量不能初始化赋值的问题
- hdc的初始化操作由case标签跳过
- error C2360: ***的初始化操作由“case”标签跳过
- 在case语句中定义变量的问题
- 在case语句中定义变量的问题
- 在case语句中定义变量的问题
- switch case中初始化变量问题
- 初始化操作由case标签跳过
- C++ 初始化操作由 case 标签跳过
- 初始化操作由case标签跳过
- switch-case中变量的初始化
- case: 初始化操作由case标签跳过 错误解决办法:加{}
- switch-case语句中,case下的语句问题
- 变量初始化的问题
- 变量的初始化问题
- Java去除空格
- 最短路的Warshall-Floyd算法
- Unix V6内核源码的理解(一)
- poj 3709 Balanced Number
- linux下的文件及目录权限详解
- case语句跳过变量初始化的问题
- Android ANR(Application Not Responding)定义
- C#根据模板动态生成html页面
- C#中加载自己编写的动态链接库
- The 9th Zhejiang Provincial Collegiate Programming Contest
- 大家来找茬--初识图像处理
- Oracle 参数文件
- Tc2.0编写俄罗斯方块游戏
- 第十五周任务二(窗口式程序开发之——分数类)