您的位置:首页 > 运维架构

OpenCV实验系列之基本图片操作

2018-02-17 13:51 411 查看

OpenCV实验系列之基本图片操作

注意:以下内容根据opencv官网提供的教程结合个人理解所得,仅是个人学习笔记,可能存在错误或偏差,欢迎指正。

OpenCV实验系列之基本图片操作
读写及显示图片

读写像素值

选取图片特定区域

转换图片格式

读写及显示图片

Mat img = imread(filename)//读取图片,图片格式判定取决于最先的几个字节
Mat img = imread(filename, IMREAD_GRAYSCALE);//以灰度图方式读取图片
imwrite(filename, img);//写入图片(写入图片的格式取决于文件名的拓展名)


读写像素值

//读取单通道像素值
Scalar intensity = img.at<uchar>(y, x);
Scalar intensity = img.at<uchar>(Point(x, y));//注意这里x,y位置是有区别的!

//读取BGR三通道像素值
Vec3b intensity = img.at<Vec3b>(y, x);
uchar blue = intensity.val[0];
uchar green = intensity.val[1];
uchar red = intensity.val[2];

//写入像素值
img.at<uchar>(y, x) = 128;

//将图片全部赋值为0
img = Scalar(0);

//显示图片
namedWindow("image", WINDOW_AUTOSIZE);
imshow("image", img);


选取图片特定区域

Rect r(10, 10, 100, 100);
Mat smallImg = img(r)


转换图片格式

//将图片转由彩图换成灰度图
cvtColor(img, grey, COLOR_BGR2GRAY);
//转换图片数据格式
src.convertTo(dst, CV_32F);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  opencv