如何使用OpenCV c++函数?
8视图(30天)
显示旧的评论
你好,
我想使用OpenCV函数cvtColor改变图像从RGB到灰度使用仿真软件的功能。万博1manbetx是这样的:
![](http://www.tianjin-qmedu.com/matlabcentral/answers/uploaded_files/163388/image.jpeg)
我的S-Functions知识是有限的,但据我所知,在mdlOutputs方法需要做转换。类似这样:
静态空白mdlOutputs (SimStruct * S, int_T tid)
{
const uint8_T *情况= (const uint8_T *) ssGetInputPortSignal (S, 0);
uint8_T * y0 = (uint8_T *) ssGetOutputPortRealSignal (S, 0);
空白ocvMxArrayToImage_uint8 (const mxArray *情况,简历::垫&colourImage);
简历::cvtColor (colourImage、grayImage CV_RGB2GRAY);
y0 * ocvMxArrayFromImage_uint8 (const简历:垫&grayImage);
}
我是正确的吗?你知道我在哪里可以找到一些例子吗?
谢谢你!
答案(1)
Prashant Arora
2017年4月28日
嗨扫罗,
OpenCV界面允许您调用与mxArray OpenCV的功能。在仿真软件万博1manbetxC-Mex s函数,real_T基本上是双,而不是mxArray。您需要首先创建一个mxArray使用仿真软件的输入。万博1manbetx
在一个更简单的方法实现你的用例,我建议使用以下流程:
1)创建一个MATLAB墨西哥人文件(不是一个仿真软件功能)在MATL万博1manbetxAB调用OpenCV函数。您可以参考下面的链接。
2)使用MATLAB仿真软件的功能块调用这个墨西哥人文件。万博1manbetx
2的评论
米歇尔Mondini
2018年2月23日
嗨Prashant Arora,
我面临类似的问题。你的意思是:“使用MATLAB仿真软件功能块调用这个墨西哥人文件”?万博1manbetx你能解释更准确吗?
我想那样做,但我发现mxArrays数据类型之间的不相容,墨西哥人所需功能,和标准数据模型(如双和uint8图像数据矩阵)。万博1manbetx
提前谢谢!