总结系列(opencv中c版本和c++版本区别体验,续...)

C与C++在opencv中的区别 Opencv官方文档中提供的接口类型有c的,也有C++的,其实这两者之间并没有什么区别,或者更精确地说,区别很小,我所知道的只有一个,下面会介绍。首先,这里是一个关于用C还是C++的问题(http://stackoverflow.com/questions/11376368/opencv-c-and-c-performance-comparison),回答问题的高人表示,这两种接口其实没什么区别(t 阅读详情

 1.  显示窗口大小的改变方法不同。

  在c版本中,定义一个窗口时用cvNamedWindow.

  比如说cvNamedWindow(“src”,0);后面的参数为0表示窗口大小可以手动改变,否则窗口的大小是自适应图片大小的。

  而在c++版本中定义一个窗口用namedWindow.

  比如说namedWindow(“src”,1);不管后面第二个参数是多少,都不能手动更改窗口的大小,因为它的尺寸是根据图片大小自动生成的。

     并且要看到手动调整窗口大小的效果,还需要配合cvShowImage(“src”,img);

  也就是说如果后面显示用c++版本的imshow(“src”,img);也是看不到手动调整图片大小的效果的。

 

  2.  显示图片的函数不同。

  在opencv的c版本中,显示图片用cvShowImage;

  比如说,cvShowImage(“src”,img);

  并且这里的img是IplImage*类型,所以如果你定义的img是Mat类型的话就用不了,因为程序不能自动将Mat类型转换成IplImage*类型。

  在opencv的c++版本中,显示图片用的是imshow;

  比如说,imshow(“src”,img);

  当然这里的img就是Mat类型了。也就是说如果这里的img用IplImage*就不行了,程序不能自动将IplImage*转换成Mat类型。

  通过上面2点应该注意到,如果要手动改变图片的尺寸,就必须cvNamedWidow(“src”,0);

  cvShowImage(“src”,img)一起用。其中img是IplImage*类型。

     当然cvNamedWindow(“src”,0)也可以和imshow(“src”,img)一起用,其中img是Mat类型,但是这样达不到自动改变窗口大小的目的。

  因为一般情况下,namedWindow(“src”,1)和imshow(“src”,img)一起用的。

  下面来看看IplImage结构体内部:

int 

nSize

int 

ID

int 

nChannels

int 

alphaChannel

int 

depth

char 

colorModel [4]

char 

channelSeq [4]

int 

dataOrder

int 

origin

int 

align

int 

width

int 

height

struct _IplROI * 

roi

struct _IplImage * 

maskROI

void * 

imageId

struct _IplTileInfo * 

tileInfo

int 

imageSize

char * 

imageData

int 

widthStep

int 

BorderMode [4]

int 

BorderConst [4]

char * 

imageDataOrigin

  而Mat结构体包含一个Mat头部(头部中记录的是矩阵的大小,存储方式等等)和一个指向矩阵的指针。所以2者还是有很大区别的,所以说程序不能自动将他们转换是有原因的,因为Mat结构更加复杂。

 

  3. 读取图片的方式不同。

  在c版本中读取图片用的是cvLoadImage;

  比如说cvLoadImage(“lena.jpg”);

  在c++版本中,读取图片用的是imread;

  比如说imread(“lena.jpg”);

  当然这2种的lena图片都是放入工程目录下的。

  但是这里有一点非常不同的是,cvLoadImage()中的参数为const char*类型,而imread()中的参数是const &string型,这两种是完全不同的,在opencv中也不能自动转换好他们,混合使用c和c++函数一起编写opencv代码时要小心。

 

  4. 路径表示方式不同。

  在c版本中路径之间用2个双右斜线,即”//”。用1个斜线”/”会报错。

  在c++版本中路径之间用1个或者2个甚至更多个斜线都是可以的。

Opencv入门(C++) OpenCV c++版入门。 阅读详情

相关推荐

OpenMV 和 OpenCV的区别与联系

OpenMV 和 OpenCV的区别与联系

1万+

[c++] opencv加载png

1、cvloadimage载入png文件时,默认的第2个参数是1,即CV_LOAD_IMAGE_COLOR,生成的iplimage对象的channel数是3,而不是4,丢失了第4通道。需要改为cvloadimage(pbuf,-1)得到的iplimage对象就是4个channel; 2、opencv的cvshowimage函数,显示对应的iplimage对象还是错误的,可以忽略不管丫的...

395

OpenCV各版本差异与演化,从1.x到4.0

博客:blog.shinelee.me | 博客园 | 优快云 写在前面 最近因项目需要,得把OpenCV捡起来,登录OpenCV官网,竟然发现release了4.0.0-beata版本,所以借此机会,查阅资料,了解下OpenCV各版本的差异及其演化过程,形成了以下几点认识: 新版本的产生是为了顺应当下的需要,通过版本更新,接纳新技术和新方法,支持新兴编程语言接口,使用新的指令集,优化性能,解...

日拱一卒 5616

总结系列_3(opencv中c版本和c++版本区别体验,续...)

  1.  显示窗口大小的改变方法不同。   在c版本中,定义一个窗口时用cvNamedWindow.   比如说cvNamedWindow(“src”,0);后面的参数为0表示窗口大小可以手动改变,否则窗口的大小是自适应图片大小的。   而在c++版本中定义一个窗口用namedWindow.   比如说namedWindow(“src”,1);不管后面第二个参数是多少,都不能手动更改窗口...

weixin_34218579的博客 368

【OpenCv】 VS C++ (零):专栏总揽与OpenCv介绍

OpenCv介绍 OpenCv是什么呢? OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉库,它提供了很多函数,这些函数非常高效地实现了计算机视觉算法(最基本的滤波到高级的物体检测皆有涵盖)。 OpenCv支持什么语言呢? OpenCV 使用 C/C++ 开发,同时也提供了 Python、Java、MATLAB 等其他语言的接口。...

qq_40515692的博客 7066

opencv1.0版本纯C版本

opencv 1.0 纯C版本,嵌入式开发小系统进行代码移植省了很多把opencvC++代码转成C代码

C++ 和 Qt 的opencv库和eigen库的导入

首先说说库的下载 下载链接为 opencv官网 Eigen官网 下载自己想要的版本即可 或者百度网盘自取 链接:https://pan.baidu.com/s/1RUCydoRQXU1sXJ9QqGz5pw 提取码:9ede 一、Qt 相关 先说Qt,库的导入较为简单 解压之后,在自己的项目名称那里右键,选择添加库,添加外部库 添加库文件的路径,以及勾选自己的系统,例如我是windows,只勾选windows,找到.lib文件添加即可,就会发现自己的.pro里增加了路径, 但是我们的eigen库没有l

qq_44790423的博客 4642

企业如何利用群晖 NAS 构建高效数据备份与容灾体系

群晖 NAS 不仅是一个企业级文件存储设备,更是一个完整的数据保护平台。通过 Active Backup for Business、快照技术和多层次容灾方案,企业可以在确保数据安全的同时,实现业务的高可用与持续性。在当今充满不确定性的环境下,企业应将数据备份与容灾体系作为 IT 战略的重要组成部分,而群晖 NAS 则是一个值得信赖的核心基石。

Trihawk的博客 491

cvLoadImage,cvCreateImage,cvReleaseImage C/C++ 学习日记

本次介绍一下三个函数。 cvLoadImage(加载) cvCreateImage(创建) cvReleaseImage(释放) 为什么要释放?释放要注意什么? 在一个大循环中使用cvLoadImage(),不及时释放,内存会占满。 cvReleaseImage()可以释放cvCreateImage()加载的图像。 cvReleaseImage()无法释放cvLoadImage()加载的图像。...

qq_43351886的博客 997

CAD的.dwg文件导入 ArcGIS:高程分析、坡度分析、坡向分析

CAD的.dwg文件导入 ArcGIS,再进行高程分析、坡度分析、坡向分析。

My_Echo_yM的博客 7235

宝骏kiwi 630 730 560 E100 E200 E300 310 510 610 330 530维修手册电路图资料线路图接线图更新

2020-2022年宝骏RS-3维修手册和电路图。2020-2022年宝骏RS-3维修手册和电路图。2019-2021年宝骏RC-6维修手册和电路图。2019-2021年宝骏RC-6维修手册和电路图。2019-2020年宝骏RS-5维修手册和电路图。2019-2020年宝骏RS-5维修手册和电路图。2019-2020年宝骏RM-5维修手册和电路图。2019-2020年宝骏RM-5维修手册和电路图。2019-2021年宝骏510维修手册和电路图。2019-2021年宝骏510维修手册和电路图。

weixin_45821055的博客 1771

【C++&&OpenCV】解决cvLoadImage等函数不能进行单步调试的OpenCV配置问题

本文是在用透视函数cvWarpPerspective实现图像平移时,发现该函数在向左平移时出现bug;本来只准备向左平移50个像素的,而结果却向左平移了100个像素。因此想看看开源的OpenCV中是如何实现cvWarpPerspective的,可是该程序却不能进入cvWarpPerspective函数内部代码进行单步调试;于是网络搜索一番后得到答案,解决了对OpenCV自带函数进行内部单步调试的问...

weixin_33851604的博客 177

动态掩码语言模型(MLM)优化策略:效率提升与最新技术实践

本文深入探讨了动态掩码语言模型(MLM)的优化策略与技术实践,涵盖核心原理、效率优化及2025年最新突破。重点解析了动态掩码在提升模型性能中的关键作用,包括工程实现、掩码策略演进及混合专家动态掩码等创新技术,为自然语言处理领域的研究与应用提供实用指南。

vscode5coder的博客 216

opencv c++与c版本区别

总结系列_3(opencv中c版本和c++版本区别体验,续...)   1.  显示窗口大小的改变方法不同。   在c版本中,定义一个窗口时用cvNamedWindow.   比如说cvNamedWindow(“src”,0);后面的参数为0表示窗口大小可以手动改变,否则窗口的大小是自适应图片大小的。   而在c++版本中定义一个窗口用namedWindow.   比如说namedW

gongzhitank的博客 3434

解决 python2.7中 ImportError: No module named Crypto.Signature

我的解决办法,先查看有没有安装 pip,直接执行pip 回车 没有出现null什么的就安装了,如果没有安装去其他博客哪里看一下,正常情况是默认就有的,然后使用。发现我自己也不会啊,就百度看看,想着网上的解决方法一大片,但是都是废话,能用的没有几个,而且能安装的没有几个。这个里面的python2、3就是系统里面的python版本,直接跟我这样就可以了除非版本不一样,也就是没有这个版本。就可以使用了,第一个应该是卸载之前的,然后重新安装,我的就是这样解决的。就比如我的,我现在使用的 python2.7。

记录一下 1610

C++软件调试与异常排查从入门到精通专栏介绍与文章汇总

根据近几年排查软件异常的实践与经验,系统地讲解了C++软件异常常见原因与常用排查方法,以图文并茂的方式给出具体的分析实例,带领大家逐步掌握C++软件异常排查的相关技术与要领。

dvlinker的技术专栏 23万+

opencv c语言程序,自己总结的opencv中c版本和c++版本程序代码的小区别

1. 显示窗口大小的改变方法不同。在c版本中,定义一个窗口时用cvNamedWindow.比如说cvNamedWindow(“src”,0);后面的参数为0表示窗口大小可以手动改变,否则窗口的大小是自适应图片大小的。而在c++版本中定义一个窗口用namedWindow.比如说namedWindow(“src”,1);不管后面第二个参数是多少,都不能手动更改窗口的大小,因为它的尺寸是根据图片大小自...

weixin_32549035的博客 876

基于Simulink的PID控制汽车巡航控制系统建模与仿真

汽车巡航控制系统(Cruise Control System)是一种通过自动调节发动机输出功率来维持车辆以恒定速度行驶的技术。这种系统能够减轻驾驶员在长途驾驶中的疲劳,同时提高燃油经济性和行车安全性。PID(比例-积分-微分)控制器因其结构简单、性能稳定且易于实现而被广泛应用于汽车巡航控制系统中。本项目旨在通过MATLAB/Simulink平台设计和验证一个基于PID控制的汽车巡航控制系统,重点研究PID参数调优方法、系统动态响应特性以及稳态误差消除能力。

MHD0815的博客 196

opencv中c版本和c++版本区别体验

1.  显示窗口大小的改变方法不同。   在c版本中,定义一个窗口时用cvNamedWindow.   比如说cvNamedWindow(“src”,0);后面的参数为0表示窗口大小可以手动改变,否则窗口的大小是自适应图片大小的。   而在c++版本中定义一个窗口用namedWindow.   比如说namedWindow(“src”,1);不管后面第二个参数是多少,都不能

大可的杨先森的博客 5851

编织数据的实时脉络——构建基于MySQL的数据编织平台,实现实时数据治理

除了上述基本设置外,我们还可以根据实际应用场景自定义一些特定的监控项目。例如,对于某些高并发读写的表,可能需要特别关注它们的锁等待时间和回滚段使用率;而对于涉及到跨库关联查询的操作,则应当着重检查网络延迟及缓存命中率等因素。-- 获取InnoDB行级锁等待情况-- 统计各表的缓存命中率这段SQL脚本不仅展示了如何查询InnoDB引擎下的锁争用状况,还介绍了计算表级别缓存命中率的方法,有助于深入理解系统的运行状态。

墨夶的博客 1789

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

VS code配置C/C++、OpenCV(Windows)

目录一、前言二、编译器、编辑器、链接器与IDE2.1编译器2.2编辑器2.3链接器2.4IDE三、配置环境四、VScode搭建C/C++环境4.1安装VScode+Mingw644.2添加扩展工具4.3C/C++编译与调试五、OpenCV+cmake配置六、测试 一、前言 由于今年疫情影响,很多计划内的事情都泡汤了,鉴于下学期找工作需要,决定自己在家学习C/C++、OpenCV,刷刷题。这时候找一...

CleMints的博客 2万+

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

NO1 C++和Python版本的OpenCV环境配置

C++和Python版本的OpenCV环境配置

2401_86418508的博客 1615

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

opencv的C语言接口和C++接口区别(入门篇)

opencv的C语言接口和C++接口配置过程中的区别

bing_bing304的专栏 1万+
上一篇: libsvm处理多分类的问题
下一篇: opencv中c/c++风格函数使用说明
且歌且行
博客等级 码龄18年 58粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值