这个程序是简单地图像纹理特征提取,参考代码如下所示:

IplImage * cvSampleImageTextureExtraction(IplImage* img,IplImage* dst){uchar* data=(uchar*)img->imageData;int step=img->widthStep;//IplImage* dst=cvCreateImage(cvSize(img->width,img->height),img->depth,1);dst->widthStep=img->widthStep;CvScalar s;int tmp[8]={0};int sum=0;int k=0;for(int i=1;i<img->height-1;i++)for(int j=1;j<img->width-1;j++){if(data[(i-1)*step+j-1]>data[i*step+j])tmp[0]=1;else tmp[0]=0;if(data[i*step+(j-1)]>data[i*step+j]) tmp[1]=1;else tmp[1]=0;if(data[(i+1)*step+(j-1)]>data[i*step+j]) tmp[2]=1;else tmp[2]=0;if (data[(i+1)*step+j]>data[i*step+j]) tmp[3]=1;else tmp[3]=0;if (data[(i+1)*step+(j+1)]>data[i*step+j]) tmp[4]=1;else tmp[4]=0;if(data[i*step+(j+1)]>data[i*step+j]) tmp[5]=1;else tmp[5]=0;if(data[(i-1)*step+(j+1)]>data[i*step+j]) tmp[6]=1;else tmp[6]=0;if(data[(i-1)*step+j]>data[i*step+j]) tmp[7]=1;else tmp[7]=0;for(k=0;k<=7;k++)sum+=abs(tmp[k]-tmp[k+1]);sum=sum+abs(tmp[7]-tmp[0]);if (sum<=2)s.val[0]=(tmp[0]*128+tmp[1]*64+tmp[2]*32+tmp[3]*16+tmp[4]*8+tmp[5]*4+tmp[6]*2+tmp[7]);else s.val[0]=59; cvSet2D(dst,i,j,s);}return dst;
}

测试结果输出如下所示:

输出图像纹理效果图如下图所示:

关于Image Engineering & Computer Vision的更多讨论与交流,敬请关注本博客和新浪微博songzi_tea.

利用OpenCV实现图像纹理特征提取相关推荐

  1. android代码查找图像,Android平台上利用opencv进行图像的边沿检测

    原标题:Android平台上利用opencv进行图像的边沿检测 近开始接触opencv for Android,从网上down了图像的边沿检测的代码. 测试图片: 在Android2.3.1模拟器上跑 ...

  2. 利用opencv对图像进行长曝光

    利用opencv对图像进行长曝光 本文首发于公众号[Opencv视觉实践],翻译自光头哥哥的博客: [Long exposure with OpenCV and Python],仅做学习分享. 原文链 ...

  3. 利用OpenCV实现图像修复(含源码链接)

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 前一段时间小白分享过关于图像修复技术介绍的推文(点击可以跳转),有 ...

  4. 利用OpenCV检测图像中的多个水果

    OpenCV检测图像中的多个水果 最近面试碰到一个图像算法题,要求: (1)检测一副图像中的多个苹果并标识出来. (2)标识时需要将图像中苹果按照从大到小给定序号,显示出来. 基于以上两点,准备利用C ...

  5. 利用opencv实现图像马赛克处理的三种方法

    前言:本文就图像的马赛克处理,基于opencv提出了三种解决方案,并详细地介绍了三种方法的原理.示例.问题及问题的解决方案. 方法一 原理介绍:利用resize()将图片先缩小,再放大 代码示例: i ...

  6. 利用OpenCV对图像倾斜矩形目标区域进行固定大小裁剪

    文章目录 目的 效果展示 为什么要固定大小裁剪? 代码及解释 原始文件 代码 代码解释 ① 主程序 ② ReadTxt() 函数 ③ rotate() 函数 目的 这篇博客主要介绍如何使用 OpenC ...

  7. 利用OpenCV进行图像的轮廓检测

    简 介: 本文对于OpenCV中的轮廓检测算法进行了讨论,可以看到一些基于轮廓检测的应用.接着对四种不同的提取方式的结果进行了讨论.你还了解了如何将轮廓进行绘制的方法. 关键词: 轮廓检测,二值化 § ...

  8. C++中利用OpenCV进行图像批量处理

    想要对大量图像进行简单处理,我们可以利用代码实现. OpenCV作为开源的图像处理库,安装方便,容易上手,功能强大,受到了很多人的喜爱. 1.背景 笔者正在参加全国大学生智能汽车竞赛.由于放假在家,家 ...

  9. 利用OpenCV提取图像中的矩形区域(PPT屏幕等)

    ** 前言 ** 最近参加了大创项目,题目涉及到计算机视觉,学姐发了个修正图像的博客链接,于是打算用这个题目入门OpenCV. 分析问题 照片中的PPT区域总是沿着x,y,z三个轴都有倾斜(如下图), ...

最新文章

  1. js高程(二)-----继承
  2. android EventBus的简单使用
  3. 实现option上下移动_js: 实现Select的option上下移动 | 学步园
  4. js 里面令人头疼的 this
  5. java 改变文件权限_Java文件权限
  6. NLP学习02--卷积神经网络CNN
  7. 人人都能成为安全防范的高手 ——《黑客新型攻击防范:深入剖析犯罪软件》...
  8. 钉钉总裁不穷:周末最烦写周报还有被人钉
  9. dd命令打包多个文件_linux下如何tar打包多个并列文件夹,如:将a文件夹 b文件夹 c文件夹,打包成d.tar文件...
  10. arm电子相册项目——启动加载篇startup.s
  11. js封装倒计时函数实现倒计时效果
  12. Diffie-hellman 密匙交换
  13. Qt实现柱状图、饼状图、折线图、曲线图
  14. godaddy不支持java_godaddy主机被墙的解决方案
  15. 如何选择家庭私有云NAS方案?家庭NAS存储服务器的重要性
  16. R语言ETL系列:创建字段(mutate)
  17. 精通WordPress设计与开发:第3章 本地开发WordPress
  18. k8s探针检测php,K8s探针
  19. web前端本科未拿到学位证_您是否需要计算机科学学位才能成为成功的Web开发人员...
  20. app小程序手机端Python爬虫实战01-Uiautomator2自动化抓取工具介绍

热门文章

  1. python 音频处理_基于Python的音频数据处理研究与应用
  2. 异步电动机直接转矩matlab仿真,异步电机直接转矩控制原理MATLAB仿真.docx
  3. unity 配置内购_内购推荐 (IAP Promo)
  4. 降压型DC-DC变换器反馈控制模式
  5. 如何翻译视频里的语言?这篇文章告诉你
  6. 前端第一阶段-03(用墨刀工具画原型)
  7. 不管多少工资,有的公司劳动合同上都写2100,为什么这么操作?
  8. Android完美实现录音笔记功能
  9. Program received signal SIGPIPE, Broken pipe原因总结,socket关闭测试总结
  10. AppStore 上架流程 2019年