OpneCV官方教程学习----Core moudle----图像操作

Core moudle(基础模块)

1. Operations with images

输入输出:

Mat img = imread(filename);			//载入一个图片
Mat img = imread(filename, IMREAD_GRAYSCALE);	//以灰度形式载入图像
imwrite(filename, img);				//把图像写出

OpenCV中还从缓冲区读写数据的函数:cv::imdecodecv::imencode.

获取图像中的某个点的像素值;

//单通道访问方法
Scalar intensity = img.at<uchar>(y, x);		//包含一个0-255的像素值,默认先行后列
Scalar intensity = img.at<uchar>(Point(x, y));	//也可以用Point()访问

//三通道访问方式
Vec3b intensity = img.at<Vec3b>(y, x);		//先获取三个通道的数据
uchar blue = intensity.val[0];				//然后依次访问
uchar green = intensity.val[1];
uchar red = intensity.val[2];

//用2D或3D点来构造矩阵,并访问
vector<Point2f> points;
//... fill the array
Mat pointsMat = Mat(points);		//用2D点初始化了一列
Point2f point = pointsMat.at<Point2f>(i, 0);	

存储方式的管理

//内存管理和引用计数
std::vector<Point3f> points;
// .. fill the array
Mat pointsMat = Mat(points).reshape(1);	//矩阵从32FC3类型的一列变换成32FC1类型的三列
//开辟新的内存以存储图像,使用cv::Mat::copyTo,cv::Mat::clone
Mat img = imread("image.jpg");
Mat img1 = img.clone();
//只声明矩阵是不分配内存的,但是可以当做输出矩阵来存储
Mat img = imread("image.jpg");
Mat sobelx;
Sobel(img, sobelx, CV_32F, 1, 0);

操作图像的数据类型

img = Scalar(0);	//将图像中像素设置成黑色
Rect r(10, 10, 100, 100);		//矩形框用来选择图像范围
Mat smallImg = img(r);			//根据r来选择图像区域
Mat img = imread("image.jpg"); //读取的img是3通道
Mat grey;
cvtColor(img, grey, COLOR_BGR2GRAY);	//彩色图转换成灰度图,grey是输出矩阵
src.convertTo(dst, CV_32F);				//转换图像的数据类型

可视化图像

Mat img = imread("image.jpg");
namedWindow("image", WINDOW_AUTOSIZE);	//设置窗口名字。
imshow("image", img);		//可视化图像
waitKey();					//等待
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值