**

OpenCV IPLImage常用方法

**
最近在做图像处理时,发现IPLImage比Mat有些优势。①前者虽然比较死板,但访问像素效率非常高(指针的功劳) ②当然,在进行相关操作时,必要时可以将Mat与IPLImage相互转换
接下来就开始介绍基本的操作。

1.图像读取、显示、保存

void imgIpl()
{/*载入图像 这里有个很有趣的东西,在载入是如下所写“CV_LOAD_IMAGE_UNCHANGED”,它的作用时读取时,保留原图像格式(如通道、深度)等。不这样的话,可能会默认为3通道、8bit。具体大家可以查相关资料*/IplImage* src;src = cvLoadImage("image.tiff", CV_LOAD_IMAGE_UNCHANGED);//显示图像cvNamedWindow("src", 0);cvShowImage("src", src);//保存图像cvSaveImage("imgIpl.tiff", src);
}

2.图像信息输出、拷贝、创建、释放

#pragma once
#include"Function.h"void imgIpl()
{//载入图像IplImage* src;src = cvLoadImage("image.tiff", CV_LOAD_IMAGE_UNCHANGED);//输出图像宽、高通道、深度、大小、像素原点位置、图像行排列方式cout << "width:" << src->width << "  height:" << src->height << "  channel:" << src->nChannels << "  depth:" << src->depth << "  size:" << src->nSize << "  origin:" << src->origin << "  align:" << src->widthStep << endl;//创建图像IplImage* dest = cvCreateImage(cvSize(src->width, src->height), src->depth, src->nChannels);//图像拷贝cvCopy(src, dest);   //图像销毁cvReleaseImage(&dest);//访问像素(修改像素)  学习cvGet2D()函数访问元素for (int i = 0; i < src->height; i++){//将指针偏移到第i行ushort* imgData = (ushort*)(src->imageData + i * src->widthStep);for (int j = 0; j < src->width; j++){//读取像素ushort pixel = imgData[j];//修改像素//imgData[j] = 0;}}
}

3.图像灰度化、二值化、IPLImage与Mat格式相互转换

void imgIpl()
{//载入图像IplImage* src;src = cvLoadImage("image.tiff", CV_LOAD_IMAGE_UNCHANGED);//IplImage* -> Mat  Mat dest(src) 等价于 Mat dest=src 等价于 Mat dest=cv::cvarrToMat(src)Mat imgMat = cv::cvarrToMat(src);namedWindow("imgMat", 0);imshow("imgMat", imgMat);//Mat -> IplImage*IplImage* imgIpl = (IplImage*)&IplImage(imgMat);cvNamedWindow("imgIpl", 0);cvShowImage("imgIpl", imgIpl);//灰度化cvCvtColor(imgIpl, imgIpl, COLOR_RGB2GRAY);//二值化cvThreshold(imgIpl, imgIpl, 50, 255, CV_THRESH_BINARY);
}

OpenCV IPLImage常用方法相关推荐

  1. 【python第三方库】opencv库常用方法和属性

    文章目录 一.opencv总览 应用领域 1.计算机视觉领域方向 2.计算机操作底层技术 二.常用操作 安装 1. 图片加载.显示和保存 2. 图像显示窗口创建与销毁 3. 图片的常用属性的获取 4. ...

  2. opencv 内存数据转matlab,OpenCV:IplImage, CvMat, Mat 相互转换

    cv::Mat cv::Mat preMat; //第一种转换方式 IplImage imgIpl1 = preMat; //第二种转换方式 IplImage imgIpl2 = preMat.ope ...

  3. Hobject 与 OpenCV IplImage 和 Mat 的相互转换

  4. opencv 纸箱分割_OpenCV与AIPCV库——学习笔记(一)

    本专题是学习Algorithms for Image Processing and Computer Vision的笔记. AIPCV是书名的缩写. 使用OpenCV时,需要了解的关键细节是数据结构的 ...

  5. OpenCV与AIPCV库——学习笔记(一)

    本专题是学习Algorithms for Image Processing and Computer Vision的笔记. AIPCV是书名的缩写. 使用OpenCV时,需要了解的关键细节是数据结构的 ...

  6. iOS下OpenCV开发用OC还是Swift

    本文为作者原创,转载请注明出处(http://www.cnblogs.com/mar-q/)by 负赑屃 其实标题中这个问题并不准确,准确的说法应该是iOS下的OpenCV开发是使用OC还是Swift ...

  7. 开源生物特征识别库 OpenBR

    开源生物特征识别库 OpenBR OpenBR 是一个用来从照片中识别人脸的工具.还支持推算性别与年龄. 使用方法:$ br -algorithm FaceRecognition -compare m ...

  8. 计算机视觉领域经典论文源码

    计算机视觉领域经典论文源码 转载自:http://blog.csdn.net/ddreaming/article/details/52416643 2016-CVPR论文代码资源: https://t ...

  9. 机器视觉开源处理库汇总

    从cvchina搞到的机器视觉开源处理库汇总,转来了,很给力,还在不断更新... 通用库/General Library OpenCV 无需多言. RAVL Recognition And Visio ...

  10. 机器视觉、模式识别库

    开源生物特征识别库 OpenBR OpenBR 是一个用来从照片中识别人脸的工具.还支持推算性别与年龄. 使用方法:$ br -algorithm FaceRecognition -compare m ...

最新文章

  1. 解决360等等浏览器兼容模式解析不兼容代码
  2. Zookeeper的集群架构以及读写原理
  3. HDU 5938 2016CCPC杭州 F: Four Operations
  4. tp5自定义一个函数php,tp5 如何模块自定义函数!
  5. gtx1050ti最稳定的驱动_【硬件资讯】持续霸榜经久不衰?四岁高龄的GTX1060仍为Steam最受欢迎显卡!...
  6. 1一10到时的英文单词_从第一到第十英语单词,第一到第十英语单词!
  7. webservice规范及webservice框架
  8. android GitLab使用教程
  9. win10虚拟机连接不上内网服务器,win10虚拟机网络设置_win10虚拟机怎么连接网络...
  10. 用VMware克隆CentOS 6.4后HWaddr和UUID的设置
  11. Leetcode 1653. Minimum Deletions to Make String Balanced [Python]
  12. P1903 数颜色 (带修莫队)
  13. java get方法使用_java中关于set()和get()方法的理解和使用
  14. html5微信自动播放视频,科技常识:HTML5页面音视频在微信和app下自动播放的实现方法...
  15. 电脑装机硬盘分区格式
  16. 毕业论文知识点记录(三)——SPSS去相关
  17. 开发STM32相关资料下载
  18. Leetcode刷题100天—3. 无重复字符的最长子串(滑动窗口+集合+双指针)—day21
  19. 职称计算机xp系统试题,2015年职称计算机WindowsXP测试题及答案
  20. 计算机音乐谱告白气球乐谱,天谕手游告白气球乐谱代码是什么-天谕手游告白气球乐谱代码分享_快吧手游...

热门文章

  1. 计算机硬盘应该什么格式化,硬盘应该格式化成哪种格式为好?
  2. win7怎么在计算机找文件夹选项,解决WIN7工具菜单没有文件夹选项/文件夹和搜索选项变灰色...
  3. python程序画中国围棋棋盘
  4. 自动提示文本框和下拉框
  5. 学习笔记之极客时间《Java 核心技术面试精讲》
  6. GreenDotNet0.1.1发布(.Net精简环境)及示例.Net在线漫画下载器
  7. python连连看小游戏_python tkinter实现连连看游戏
  8. linux iso镜像安装工具,教你制作属于自己的CentOS 6.4一键自动化安装ISO镜像光盘...
  9. CSS border设置虚线可调节虚线间距
  10. 华为s2600t java_华为S2600T------v1版本