总结一下之前在做项目时需要用到把matlab的一些代码转换成c/C++代码,下面是实现matlab中的median()函数的代码,供大家借鉴。
matlab中median()函数的实现。
int cmp(const void a, const void b)//排序函数,
{
return (float )a>(float)b ? 1 : -1;
}
///
int median(vector<IplImage
> LR_I, IplImage
result)
{
int LR_value = LR_I.size();
float last_gray = 0;
float p[20] = { 0 };
for (int i = 0;i< LR_I[0]->width; i++)
{
for (int j = 0;j< LR_I[0]->height; j++)
{
for (int k = 0; k < LR_value; k++)
{
float gray = cvGetReal2D(LR_I[k], i, j);
p[k] = gray;
}
qsort(p, LR_value, sizeof(p[0]), cmp);
if (LR_value%2==0)
{
int m = LR_value / 2;
int n = (LR_value / 2)-1;
last_gray = (p[m] + p[n]) / 2.0;
}
else
{
int m = LR_value / 2;
last_gray = p[m];
}
cvSetReal2D(result, i, j, last_gray);
}
}
return 0;
}

这里需要注意的是排序函数qsort(),在对float或是double型进行排序时,要用三目运算符,
写返回值,return *(int )a >(int *)b?1:-1; 因为cmp排序函数返回值为int型,如果两个数很相近,则会认为返回值为0,无法正确排序。
//整型数组排序
int num[100];
int cmp ( const void *a , const void *b )
{
return *(int *)a - *(int *)b;
}
qsort(num,100,sizeof(num[0]),cmp);
///double型数组排序
Double num[100];
int cmp ( const void a , const void b )
{
return (double)a >
(double
)b? 1:-1;
}
qsort(num,100,sizeof(num[0]),cmp);

opencv实现matlab的median()函数相关推荐

  1. MATLAB中median函数的用法

    1.功能 求矩阵的中间值. 2.格式 ①median(M) 每一列返回一个值,为M该列的从大到小排列的中间值. ②median(M,dim) dim为1,2.其中1表示按每列返回一个值,为该列从大到小 ...

  2. matlab2c使用c++实现matlab函数系列教程-median函数

    全栈工程师开发手册 (作者:栾鹏) matlab2c动态链接库下载 matlab库函数大全 matlab2c基础教程 matlab2c开发全解教程 matlab2c调用方法: 1.下载动态链接库 2. ...

  3. matlab中imresize函数的用法,为何 MATLAB imresize 函数和 OpenCV resize 函数结果不同

    为何 MATLAB imresize 函数和 OpenCV resize 函数结果不同?今年 4 月,我在依照 MATLAB 代码自己写一个卷积神经网络 C++ 实现的过程中,就发现了这个问题,不过那 ...

  4. 根据MATLAB的histeq函数改写的运行在OpenCV下的直方图规定化C源码

    图像处理开发需求.图像处理接私活挣零花钱,请加微信/QQ 2487872782 图像处理开发资料.图像处理技术交流请加QQ群,群号 271891601 2016-6-8日用C++也实现了直方图规定化, ...

  5. Matlab的round函数和OpenCV的cvRound函数的区别

    Matlab的round函数和OpenCV的cvRound函数都是获得浮点数最近的整数. 今天在调试项目时发现Matlab代码运行结果和C++代码运行结果略有出入,最后定位到Matlab的round函 ...

  6. matlab中调用histeq函数命令,根据MATLAB的histeq函数改写的运行在OpenCV下的直方图规定化源码!...

    据说,图像的直方图规定化比直方图均衡化用得更多,但是很奇怪的是OpenCV居然没有图像直方图规定化的源码!所以,我就有必要在OpenCV下写一个图像直方图规定化处理的函数,以方便将来使用. 我在网上找 ...

  7. 如何把opencv编译到matlab,c – 为OpenCV编译MATLAB绑定

    我正在尝试编译OpenCV 3.0的MATLAB绑定,即 Github的当前版本.我一直收到以下错误: CMake Error at /opencv/modules/matlab/compile.cm ...

  8. MATLAB常用数学函数

    MATLAB常用数学函数 l        三角函数和双曲函数 名称 含义 名称 含义 名称 含义 sin 正弦 csc 余割 atanh 反双曲正切 cos 余弦 asec 反正割 acoth 反双 ...

  9. -函数-MATLAB提供的函数/主子函数/匿名-嵌套函数

    函数 MATLAB提供的函数(doc ) 1内部函数 help  elfun edit sin  (编辑文件内容查看代码) help specfun  (高级函数) edit  cart2sph ed ...

最新文章

  1. 跨平台PHP调试器设计及使用方法——通信
  2. @Profile 根据不同环境注入bean
  3. Flutter 学习(V2EX)
  4. Map 集合的坑你踩过几个?
  5. 支持服务器CPU的ITX主板,Mini-ITX主板能装28核处理器,华擎推出EPC621D4I-2M主板
  6. 闲鱼靠什么支撑起万亿的交易规模?| 云原生Talk
  7. net::ERR_ABORTED ,引入js文件出现报错的解决方法
  8. android 進度條_Android更新下載進度條 | 學步園
  9. VTK:可视化算法之TensorAxes
  10. Java.util.Date类型的转化成为数据库中的Date类型。
  11. python copy()和deepcopy()解释(import copy)
  12. 漫步最优化二十五——斐波那契搜索
  13. resultmap拿不到数据_英雄联盟S10:半决赛数据告诉你huanfeng有多强
  14. 自己的域名邮箱用GMAIL:申请注册GMAIL的免费企业邮箱
  15. python识别视频中火焰_监控视频中火焰检测算法
  16. 工业AGV(含AMR)工程师要求汇总220331
  17. 2019考研英语熟词生义
  18. dec是几进制(oct是几进制)
  19. Java技术--单点登录统一认证系统的实现
  20. 在Word中上下两张表格合并不了的解决办法

热门文章

  1. 学好编程需要英语很好吗
  2. java 微信请求超时_java – SQL服务器“超出锁定请求超时时间”..再次
  3. (附源码)springboot校园购物网站APP 毕业设计041037
  4. python获取远程主机信息_python远程获取主机监控信息
  5. 中国三大互联网巨头陷入移动战争
  6. WebAR+教育丨帮助老师课堂教学,教育展览
  7. [附源码]Python计算机毕业设计Django的小区宠物管理系统
  8. PS 进行隐藏图制作
  9. css 排版_Web排版的未来:CSS字体4级
  10. 国产CSM32RV20是基于RISC-V核的低功耗MCU芯片