opencv 图像的读取显示和保存

opencv图像处理系统组成(个人见解)
图像获取:本地加载图片(jpg,bmp,png)
: 相机获取图像Frame Byte
: 视频获取数据
:创建图像CreateImage(IPL,cvMat,Mat)
操作处理 :图像加减 ,通道分离合并 ,阈值化,滤波
直方图分析、傅里叶变换、形态学处理
图像金字塔 、边缘检测、霍夫变换、轮廓分析
图像变换与匹配
信息提取:轮廓信息提取
直方图分布
频域信息
人脸 识别
结果输出:处理后的图像输出
参数输出
信息输出显示
——————————————————————
图像基本操作
图像读取—————— imread()
窗口创建——————namedWindow()
图像显示——————imshow()
图像保存——————imwrite()
资源释放——————destroyWindow()||destroyAllWindows() ——-release


示例程序
:实现功能
读取图像并进行灰度处理

#include"opencv2/imgproc/imgproc.hpp"
#include"opencv2/highgui/highgui.hpp"
using namespace cv;//使用cv命名空间
void main()
{
    Mat srcImg=imread("1.jpg");//读取图片
    cvtColor(srcImg,srcImg,CV_BGR2GRAY);//转为灰度图
    Canny(srcImmg,srcImg,30,100);canny边缘检测
    namedWindow("img,WINDOW_AUTOSIZE");//创建窗口
    imshow("img",srcImg);//显示图片
    imwrite("1.bmp",srcImg);//保存结果图片
    waitKey(0);//暂停按键等待

}

也可以用 #include”opencv2/opencv.hpp”
或者——————————————————————————————
#include “opencv2/core/core.hpp”
#include”opencv2/highgui/highgui.hpp”
#include”opencv2/imgproc/imgproc.hpp”
————————————————————————————————
imread()函数
Mat imread(const string&filename,int flags=1);
第一个参数,需要填入图片路径名,支持如下格式:
Windows位图:.bmp,.dib
JPEG文件:.jpeg .jpg *.jpe
JPEG2000文件 :*.jp2
PNG图片:*.png
便携文件格式:.pbm .pgm *.ppm
Sun resters光栅文件:.sr .ras
TIFF文件 :tiff .tif
第二个参数 指定加载图像的颜色类型 默认为1:
enum
{
// 8bit,color or not/
CV_LOAD_IMAGE_UNCHANGED=-1;
//8bit,gray/
CV_LOAD_IMAGE_GRAYSCALE=0;
//color
CV_LOAD_IMAGE_COLOR=1;
//any depth/
CV_LOAD_IMAGE_ANYDEPTH=2;
//?,any color/
CV_LOAD_IMAGE_ANYCOLOR=4;
}


namedWindow()函数
函数原型
namedWindow(const string&winname,int flags=WINDOW_AUTOSIZE);
1)第一个参数,设置作为标识的窗口名称
2)第二个参数,窗口显示方式,取值如下:
//Flags for namedWindow
WINDOW_NORMAL=CV_WINDOW_NORMAL,
WINDOW_AUTOSIZE=CV_WINDOW_AUTOSIZE,
WINDOW_OPENGL=CV_WINDOW_OPENGL,
Normal:正常大小显示,用户可以改变窗口大小
Autosize:根据图像大小自动调整,用户不能手动改变窗口大小
OpenGL:支持openGL
——————————————————————————————————
imshow()函数
imshow(const string&winname,InputArray mat);
1)第一个参数,设置需要显示的窗口名称
2)第二个参数,填写需要显示的图像
注:函数中出现InputArray/OutputArray 可以先做Mat类型
**——————————————————————————————————
imwrite()函数**
bool imwrite(const string&filename,InputArray img.const vector&parames=vector());
1)第一个参数,设置保存的文件名,需填写后缀 如“”1.bmp“”
2)第二个参数,要保存的Mat类型的图像数据
3)第三个参数,表示特定格式保存的参数编码,一般采用默认值不填写
————————————————————————————————
waitKey()函数
1)第一个参数,如果delay>0,表示等待delay毫秒之后结束,如果delay=0,表示无限等待,直到有按键按下结束
2)返回值为对应的按下按键的ASCII值,如Esc的ASCII码的27
——————————————————————————————————
补充知识(图像属性)
1).empty()判断文件读取是否正确
2).rows 获取图像行数(高度)
3).cols 获取图像列数(长度)
4).channels()获取图像通道数
5).depth()获取图像位深度
例子
Mat img=imread(“1.jpg”);
if(img.empty())
{
std::cout<<”read image error!”
}
———————————-———————————————————

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值