楚雄网站建设公司,网站推广营销案例,企业网站制作哪些公司制作,企业网站建立答辩问题Opencv 文章目录 Opencv一、读取图片1.imshow2.namedWindow3.imshow4.效果图 二、像素操作(1).访问像素1. at()2.Mat_ (2).遍历像素1.指针遍历2.迭代器遍历 (3).threshold(4).通道分离1.split2.merge (5)Gamma矫正 三、深浅拷贝 一、读取图片
1.imshow
Mat imread(const stri…Opencv 文章目录 Opencv一、读取图片1.imshow2.namedWindow3.imshow4.效果图 二、像素操作(1).访问像素1. at()2.Mat_ (2).遍历像素1.指针遍历2.迭代器遍历 (3).threshold(4).通道分离1.split2.merge (5)Gamma矫正 三、深浅拷贝 一、读取图片
1.imshow
Mat imread(const string filename, intflags1 );flags:
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
};Mat image0imread(dota.jpg,CV_LOAD_IMAGE_ANYDEPTH | CV_LOAD_IMAGE_ANYCOLOR);//载入最真实的图像
Mat image1imread(dota.jpg,0);//载入灰度图
Mat image2imread(dota.jpg,199);//载入3通道的彩色图像
Mat logoimread(dota_logo.jpg);//载入3通道的彩色图像CV_LOAD_IMAGE_UNCHANGED这个标识在新版本中被废置了忽略。CV_LOAD_IMAGE_ANYDEPTH- 如果取这个标识的话若载入的图像的深度为16位或者32位就返回对应深度的图像否则就转换为8位图像再返回。CV_LOAD_IMAGE_COLOR- 如果取这个标识的话总是转换图像到彩色一体CV_LOAD_IMAGE_GRAYSCALE- 如果取这个标识的话始终将图像转换成灰度 flags 0返回一个3通道的彩色图像。flags 0返回灰度图像。flags 0返回包含Alpha通道的加载的图像。
2.namedWindow
void namedWindow(const string winname,int flagsWINDOW_AUTOSIZE ); WINDOW_NORMAL设置了这个值用户便可以改变窗口的大小没有限制WINDOW_AUTOSIZE如果设置了这个值窗口大小会自动调整以适应所显示的图像并且不能手动改变窗口大小。WINDOW_OPENGL 如果设置了这个值的话窗口创建的时候便会支持OpenGL。
3.imshow
void imshow(const string winname, InputArray mat);4.效果图
c python 二、像素操作
(1).访问像素
1. at()
image.atuchar(j,i) value; //单通道
image.atcv::Vec3b(j,i)[channel] value; //三通道
image.atcv::Vec3b(j,i) cv::Vec3b(a,b,c);2.Mat_
cv::Mat_uchar image(image1);
image(20,30) value;(2).遍历像素
1.指针遍历
uchar *data image.ptruchar(i); //ptr()返回行的地址for (int i 0; i height; i) {cv::Vec3b* row image.ptrcv::Vec3b(i);for (int j 0; j width; j) {cv::Vec3b pixel row[j];//Vec3b直接操作图像中的像素值而不需要创建新的对象std::cout Pixel at ( i , j ): B (int)pixel[0] G (int)pixel[1] R (int)pixel[2] std::endl;}
}2.迭代器遍历
cv::MatIterator_ cv::Vec3b it;
或者
cv::Mat_cv::Vec3b::iterator it;cv::MatIterator_cv::Vec3b it, end;
for (it image.begincv::Vec3b(), end image.endcv::Vec3b(); it ! end; it) {cv::Vec3b pixel *it;pixel[0] 255; pixel[1] 0; pixel[2] 0;
}python c (3).threshold
double cv::threshold(src, OutputArray, thresh, maxval, type)c: python:
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
(4).通道分离
1.split
C: void split(const Mat src, Mat*mvbegin);
C: void split(InputArray m,OutputArrayOfArrays mv);2.merge
C: void merge(const Mat* mv, size_tcount, OutputArray dst)
C: void merge(InputArrayOfArrays mv,OutputArray dst)c
python (5)Gamma矫正
Gamma校正是对输入图像灰度值进行的非线性操作使输出图像灰度值与输入图像灰度值呈指数关系。Gamma矫正用于调整图像的亮度和对比度。Gamma矫正可以改变图像的灰度值分布使图像在显示时看起来更加自然和逼真。通常情况下人眼对亮度的感知是非线性的因此使用Gamma矫正可以更好地模拟人眼的感知特性。 V o u t A V i n γ V_{out}AV_{in}^\gamma VoutAVinγ γ的值决定了输入图像和输出图像之间的灰度映射方式即决定了是增强低灰度值区域还是增高灰度值区域。 γ1时图像的高灰度区域对比度得到增强直观效果是一幅偏亮的图变暗了下来。 γ1时图像的低灰度区域对比度得到增强直观效果是一幅偏暗的图变亮了起来。
python c 三、深浅拷贝
浅拷贝是指当图像之间进行赋值时图像数据并未发生复制而是两个对象都指向同一块内存块。
深拷贝是指新创建的图像拥有原始图像的崭新拷贝
c python