opencv基本的几个图像处理函数

转眼大学四年就要过去了,终于到了做毕设的时候。选的题目我只能说比较僵,目标跟踪。。。根本不会,不过研究生导师是搞这方面的,早点学习一下也挺不错的。

我老师给我的要求是使用opencv编写一个目标跟踪的程序,之前从没接触过opencv,接下来几周只能和opencv硬肛了。今天学习了一下最基础的几个函数,记录一下学习内容。

(1)图片读取imread()+Mat对象

要进行图像处理,首先肯定是要读取图片,在opencv中读取图片使用imread函数,该函数返回一个Mat对象,Mat对象是用来存图像星信息的。imread函数的具体使用方式如下:Mat Obj = imread("图片的路径(不在工程路径下时要采用绝对路径)",读取模式(1代表读取为BGR图片,大于1代表读取为灰度图))。

(2)图片展示namedWindow()+imshow()

图片处理后肯定要展示效果,这时就需要namedWindow函数与imshow函数配合使用。namedWindow相当于建立一个框,通过imshow函数把图片和框关联起来。具体的使用方式如下:namedWindow("图片框的名字");imshow("与相关联的图片框的名字相同",Mat对象);//其实不用namedWindow函数也能展示,但是采用namedWindow函数有利于界面的设计。

(3)图片简单处理(转换颜色空间)cvtColor()

所谓的颜色空间转换就比如说把一张BGR图片转换成灰度图,这需要一个叫cvtColor的函数,具体使用方式如下:cvtColor(源Mat对象,目标Mat对象,转换要求);

(4)图片保存imwrite()

处理后的图片肯定需要保存下来,这就需要imwrite函数,具体使用方式如下:imwrite("保存路径",需要保存的Mat对象);该函数可以把图像存为jpg,png,tif等格式,具体存为什么格式取决与路径中的后缀。

代码展示:

#include<opencv2\opencv.hpp>
using namespace cv;
int main()
{
	Mat img = imread("2.jpg", 1);//如果图片和工程不在同一个目录就要写绝对路径
	namedWindow("效果1");
	imshow("效果1", img);
	img = imread("2.jpg", 2);//读取为灰度图
	namedWindow("效果2");
	imshow("效果2", img);
	img = imread("2.jpg", 1);//读取为BGR图
	Mat dst;
	cvtColor(img, dst, CV_BGR2GRAY);//BGR转灰度图
	namedWindow("效果3");
	imshow("效果3", dst);
	imwrite("new.jpg", dst);//保存转换后的图
	waitKey(0);//等待键入,没有这条语句结果就一闪而过
}


保存的文件:



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值