📄 课题想法.txt
字号:
1.图像显示倒立问题:(1) cvFip(pframe,pframe_copy,0)
(2) pframe->origin=1;也就是指定为底左(windows bitmap风格)。0为顶左结构。
frame->origin=1;表示从底左开始,图像正立。
frame-〉origin=0;表示从顶左开始,图像倒立。
改变origin后,图像显示问题可以解决,但是接下来的图像处理就全错了
因为指针位置改变了。所以此处使用cvFlip来解决图像显示倒立的问题。
2. 为什么摄像头直接得到的图像origin为1,而背景却是0呢?
使用cvCapFromCAM得到的图像origin为1,与windows bitmap一致。
背景是使用cvCreateImage创建的,他的origin为opencv格式(0),显示的时候需要将其翻转。
若指定pframe->origin=1,就改变了pframe->imageData的指针位置,
程序中的各种处理,是基于origin=0操作的。
3. 前两桢是正确的,之后会有个闪烁的过程,然后再稳定,跟摄像头的曝光有关系?
就是跟摄像头的曝光有关。开始pframe不稳定,要等到几秒钟以后才稳定。
所以要等到摄像头完全曝光后才进行检测。这里采用捕捉到的前15桢不做处理,只是等待曝光结束。
第三桢有问题,但是保存的是第四桢的图片。为什么?
修改cvRunningAvg cvWaitKey isChange参数。背景差分的结果跟光线有很大关系。
ischange统计变化点数同时,如果像素值改变小于一定值就认为没改变,并将其置为0;否则计数.
一般像素值差多少算是正常的?
4. 背景差分的光线问题。
将isChange变化的点数由100变为400,像素值由10改为15
总是在第31幅图像的时候出现较大的变化,为什么?
一秒钟处理10幅图片。怎么控制?
每次报警之后,停止几秒钟。
差分二值化图要保存。以便察看、处理。
如果运动慢的话,物体形状就很明显, 过慢的话就不会出现差分图像。物体运动快时就会有阴影。消除阴影。
要想得到较好的差分图像,应该摄像头采集慢点,物体运动快点。因为大多数情况下,环境无变化,这时采集 速度慢点,当有情况发生时,采集速度快点。
将cvWaitKey的时间减小后,变化的像素点数也减少。而且处理速度明显加快,背景不再闪烁。
将判断环境是否变化的ischange中变化幅度由10改为15,front为黑。像素值差多少,属于正常范围?
背景更新速度0.03太小,改为0.3。结果是front变黑的速度变快了。
再改变cvWaitKey的值,看有什么变化。
bright color 改变值
消除毛刺参数 改变
二值化 的参数 什么时候黑,什么时候白
ischange统计变化点数同时,如果像素值改变小于一定值就认为没改变,并将其置为0;否则计数
背景更新的速度,cvWaitKey的速度,对差分结果的影响。
经过一段时间,差分结果才为0。为什么开始那么大呢?
front显示的是什么时候的差分结果?二值化后的?怎么好像没做差分,直接二值化的结果?
开始几秒钟内,front为黑,这是正确的,但到了第四贞就不对了,为什么?
//////////////////////
如果更新速度为0.003,front一直都像是直接二值化的结果,这是不是说明前景 背景 相差时间太大,使得背景一段时间内为0
如果更新速度为0.03,front开始为黑,过会像是直接二值化结果,但是慢慢会变得模糊,出现雪花,经过几分钟后才会变黑。
无论怎么样,前三桢都是黑的,第四桢开始差分出错,为什么?
/////////////////////////
2.多做实验,确定环境变化的像素值及个数,
确定bringt、color值,
3.随着cvWaitKey时间的减小,差分图像闪烁的速度加快。这是必然的,但为什么会闪呢?
4.为什么在摄像头刚开的时候,图像的bright(V)会很大,过会就会降下来,然后趋于稳定?
5.开始差分二值化为雪花,怎么去掉?
6.例子中的背景差分是基于摄像头不变。要想随时改变,必须使用cvCopyImage
7.内存泄露问题
最好不要在循环内创建并分配图像内存,或者其他存储结构的内存,容易产生内存泄露这样的问题。
对于新开辟的内存(不一定都用cvAlloc申请的)用完了就要释放,尤其是在循环里头,以及Continue时,一旦不释放,
内存就越来越多,最终out of memeory!
8.cvAux监控的代码
9.cvWaitKey只针对窗口控件进行操作,等待窗口的任何响应,你的程序段没有GUI窗口控件,所以也就没有任何作用。
简单的说就是个延迟函数,程序执行到这里,等待键盘输入,有则响应键盘消息,没有则等到超时,然后继续执行程序。
但是他有什么用呢?
10.看看opencv的 FAQ中的读取和显示图片 的例子中 有无 cvWaitKey有何区别。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -