{
CvCapture* capture = NULL
capture = cvCreateFileCapture("红动中国设计网视频素材2185.avi") if (!capture) return -1 //获取视频的第一帧 并存在bgr_frame
IplImage *bgr_frame = cvQueryFrame(capture) //获得视频的总帧数 CV_CAP_PROP_FPS 帧率
double fps = cvGetCaptureProperty(capture, CV_CAP_PROP_FPS)
//获得原始视频的高度和宽度
CvSize size = cvSize((int)cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_WIDTH),
(int)cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_HEIGHT)) ///创建一个视频文件参数分别表示 新建视频的名称 视频压缩的编码格式 新建视频的帧率 新建视频的图像大小
CvVideoWriter *writer = cvCreateVideoWriter("1ai.avi", CV_FOURCC('M', 'J', 'P', 'G'), fps, size) //创建首地址 并分配存储空间
IplImage* logpolar_frame = cvCreateImage(size, IPL_DEPTH_8U, 3) 凳信模// 获取视频的下一帧
while ((bgr_frame = cvQueryFrame(capture)) != NULL)
{ //将视频从笛卡尔坐标系转到极坐标系 参数分别表示 输入图像 输出图坦凯像 变换中心 尺度参数 填充输出图像所有参数 + CV_INTER_LINEAR 表示双线性参值(具体什么意思)
cvLogPolar(bgr_frame, logpolar_frame, cvPoint2D32f(bgr_frame->width / 2, bgr_frame->height / 2), 80, CV_INTER_LINEAR + CV_WARP_FILL_OUTLIERS) //将获取到的每一枣缓帧从笛卡尔坐标系转到极坐标系后的参数 存到新建的视频文件 cvWriteFrame(writer, logpolar_frame) //将获取的视频通过mainwin窗口进行展示
cvShowImage("mainwin", logpolar_frame) char c = cvWaitKey(33) //ESC 默认退出
if (c == 27) break
} //释放程序中申请的空间
cvReleaseVideoWriter(&writer)
cvReleaseImage(&logpolar_frame)
cvReleaseCapture(&capture) return(0)
}
内存不能为"Read"或"written"(原因以及解决方案):(【sql1981】原创答案,引用请说明原作者:sql1981,未通知原作者严禁复制本答案!!)
系统出现内存不能为"Read"或"written"的原因:
1、驱动不稳定,与系统不兼容,这最容易出现内存不能为 Read 或者文件保护
2、系统安装了一个或者多个流氓软件,这出现 IE 或者系统崩溃的机会也比较大,也有可能出现文件保护
3、系统加载的程序或者系统正在运行的程序之间有冲突,尤其是部分杀毒软件监控程序
4、系统本身存在漏洞,导致容易受到网络攻击。
5、病毒问题也是主要导致内存不能为 Read、文件保护、Explorer.exe 错误……
6、如果在玩游戏时候出现内存不能为 Read,则很大可能是显卡驱动不适合(这里的不适合有不适合该游戏、不适合电脑的显卡),也有可能是 DX9.0C 版本不够新或者不符合该游戏、显卡驱动
7、部分软件本身自身不足的问题
8、电脑硬件过热,也是导致内存不能为 Read 的原因之一。
9、电脑内存与主板兼容性不好也是导致内存不能为 Read 的致命原因!
提供几种解决方案:
1、一次运行注册所有dll,方法如下:
开始——运行,输入cmd 回车在命令提示符下输入
for %1 in (%windir%\system32\*.dll) do regsvr32.exe /s %1
这个命令你晌皮慢慢输,仔细点,输入正确的话会看到飞快地滚屏 否则……否则失败就是没这效果。回车后慢慢等(需要点时间1-2分钟) 都运行完再尝试之前的 *** 作,看还有没有出现不能为read的现象。
2、在控制面板的添加/删除程序中看看你是否安装了微软NET.Framework,如果已经安装了,可以考虑卸载它,当然如果你以后在其它程序需要NET.Framework时候,可以再重新安装。
另外,如果你用的是ATI显卡并且你用的是SP2的补丁(一些ATI的显卡驱动需要在NET.Framework正常工作的环境下)。这种情况你可以找一款不需要NET.Framework支持的ATI显卡驱动。
如果以上两种方法并不能完全解决问题,你试着用一下360安全卫士的的“IE修复”或其他类似软件,轮启并可以查查是否有病毒之类的。〔微软NET.Framework升级到1.1版应该没问题了〕
3、引起这个问题的原因很多。一般来讲就是给系统打上补丁宴桐差和更换内存、给内存换个插槽这3种方法来解决。[系统补丁只要到Microsoft Update网站在线更新就可以了!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)