declaration may not appear after executable statement in block

2024-03-03 16:18

本文主要是介绍declaration may not appear after executable statement in block,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


前些天就知道在TI提供的encodedecode demo里面,如果简单处理图像就直接在DSP端处理缓存就可以直接看到效果。原来在ARM端OPENCV交叉编译已经成功,
所以把EMCV库里面的 cv  cxcore文件夹里面的文件都复制到/demo/MyImageGray/codec/filecopy_dec/下面,然后在filecopy_dec.c中添加需要的结构
参考igor_facedetect.c里面用到的几个函数,只要那些函数包括在emcv中,基本就可以移植了。
首先 在  filecopy_dec.c  文件夹里面添加  #include"cv.h" 然后编译,会提示不少错误,都是一些语法问题的错误,有点基本C语言的基础都能修正,没有太大的问题。
这个函数中提示找不到 width 和 height这两个量。在OPENCV论坛里面有人说过这个,所以知道把width 和 height   改成 下面那种形式就可以了。参考下mat的定义,
也就知道为什么这么改了
CV_INLINE  CvSize  cvGetMatSize( const CvMat* mat )
{
//    CvSize size = { mat->width, mat->height };

    CvSize size;
    size.width = mat->cols;
    size.height = mat-> rows;
// = { mat->cols, mat->rows };
    return size;
}
修正一大堆语法错误以后在filecopy_dec.c 文件的PictureGray 中添加我们想要的数据结构 IplImage
然后编译

"filecopy_dec.c", line 200: error #270: declaration may not appear after executable statement in block

这个提示的意思大概是一个声明语句,要放在一个函数的开头,没有写执行语句之前。否则就会出现这个错误。

所以把这个IplImage的定义提到函数外 错误就削除了,改后的函数如下
#define IMAGESIZE (720*480)
static void PictureGray(void *pInbuf,void *pOutbuf,unsigned int len){unsigned int i;unsigned int * pIn = (unsigned int*)pInbuf;unsigned int * pOut= (unsigned int*)pOutbuf;unsigned char image[IMAGESIZE];len >>= 2;iplImage = cvCreateImageHeader(cvSize(720,480),IPL_DEPTH_8U,1);cvSetData(iplImage,image,720);
for(i=0;i<len;i++){*pOut = *pIn & 0xff00ff00|0x00800080;  image[i] = *( (unsigned char *)pIn +1 );image[i+1] = *( (unsigned char *)pIn +3) ;  //get the Y in image[] form a gray image   by dickpIn ++;pOut ++;}cvReleaseImageHeader(&iplImage);}

其实添加的部分就是把亮度提取出来变成一副图像,添加人脸识别只要在这个灰度图像上检测,然后根据检测结果去修改显示buffer就OK了,
暂时想到的就是这样做
明天继续吧。

这篇关于declaration may not appear after executable statement in block的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/770177

相关文章

[ip核][vivado]Block Menory Gennerator 学习

<刘东华的xilinx系列FPGA芯片IP核详解>读书摘录: 1. 2. 3.

Webstorm vue项目@路径不能跳转到对应资源,提示Cannot find declaration to go to

Webstorm vue项目@路径不能跳转到对应资源,提示Cannot find declaration to go to 我们 ctrl加鼠标左键点击方法会失效,看了网上很多教程在说需要在此处配置一下webpack.config.js的文件路径,而且指向了node_modules\@vue\cli-service\webpack.config.js 我试了好多次,不行,不论对错,这里

Block-Max-Maxscore(Lucene 9.10.0)

Lucene中基于论文:Optimizing Top-k Document Retrieval Strategies for Block-Max Indexes 实现了Block-Max-Maxscore (BMM) 算法,用来优化关键字之间只有OR关系,并且minShouldMatch <= 1时的查询。比如有查询条件为:term1 OR term2 OR term3,那么文档中至少包含其中一个

torch/lib/libgomp-d22c30c5.so.1: cannot allocate memory in static TLS block的正解

torch/lib/libgomp-4dbbc2f2.so.1.0.0: cannot allocate memory in static TLS block的正解 只需要一行命令即可解决 export LD_PRELOAD=/home/ma-user/anaconda3/envs/MindSpore/lib/python3.9/site-packages/torch/lib/../../to

MyBatisplus使用报错--Invalid bound statement

报错如下 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.lotus.mybatis.mapper.UserMapper.selectListat org.apache.ibatis.binding.MapperMethod$SqlCommand.<init>(MapperM

YoloV8改进策略:Block篇|即插即用|StarNet,重写星操作,使用Block改进YoloV8(全网首发)

摘要 本文主要集中在介绍和分析一种新兴的学习范式——星操作(Star Operation),这是一种通过元素级乘法融合不同子空间特征的方法,通过元素级乘法(类似于“星”形符号的乘法操作)将不同子空间的特征进行融合,从而在多个研究领域中展现出出色的性能和效率。 星操作在自然语言处理(NLP)和计算机视觉(CV)等多个领域中都得到了成功应用。例如,在自然语言处理中,Monarch Mixer、M

KVC模式讲解和Block语法

KVC键值编码,使用完整实例: #import <Foundation/Foundation.h> @interface Course : NSObject {     NSString* courseName; } - (NSString*)description; @end   #import "Course.h" @implementation Course - (NS

Ubuntu20.04以上 如何清理内存遇到报错如何处理[WARN]Free memory 1234(M)may be NOT ENOUGH

原因 今天遇到一位粉丝像我提出了一个问题,给了我一张截图,上面的报错内容是 [WARN]Free memory 1234(M)may be NOT ENOUGH for webase[WARN]Recommend webase with 2G memory at least.[WARN]Free memory 1234(M)may be NoT ENoUGH for node cou

【YOLOv10轻量级涨点改进:block优化 | 华为诺亚2023极简的神经网络模型 VanillaNet】

本文属于原创独家改进:一种极简的神经网络模型VanillaNet,以极简主义的设计为理念,网络中仅仅包含最简单的卷积计算,去掉了残差和注意力模块 计算量参数量比较,8.4 GFLOPs降低至6.1 GFLOPs YOLOv10n summary: 385 layers, 2709380 parameters, 2709364 gradients, 8.4 GFLOPsYOLOv10n-Van

对象间的通信之delegate、notificationCenter与block

在项目开发中,常常会涉及到对象之间的通信,而为了降低对象间的耦合,会采用delegate、notificationCenter、block三种方式来进行实现,对于他们的使用,也许大家都能熟练掌握,但是对于如何创建,初学者也许只是一知半解,本文不讲长篇大论,仅通过简单的实例来帮助大家学习三者的使用,希望对尚不了解以上三者的朋友能带来一定的帮助。 一、delegate 估计大家最常用的del