中学网站建设方案计划,网站建设用什么系统,手机软件商店,o2o网站建设效果图像像素的比较
白色是255#xff0c;黑色是0
min(InputArray src1,InputArray src2,OutputArray dst)
max(InputArray src1,InputArray src2,OutpurArray dstsrc1:第一个图像矩阵#xff0c;通道数任意src2#xff1a;第二个图像矩阵#xff0c;尺寸和通道数以及数据类型…图像像素的比较
白色是255黑色是0
min(InputArray src1,InputArray src2,OutputArray dst)
max(InputArray src1,InputArray src2,OutpurArray dstsrc1:第一个图像矩阵通道数任意src2第二个图像矩阵尺寸和通道数以及数据类型都需要与src1一致dst保留对应位置较大较小灰度值后的图像矩阵尺寸、通道数和数据类型与src1一致
LUT查找表
LUT查找表实际上就是一种映射规则
LUT(InputArray src,InputArray lut,OutputArray dst)
src:输入图像矩阵其数据类型只能是CV_8U
lut256个像素灰度值的查找表单通道或者与src通道数相同
dst输出图像矩阵其尺寸与src相同数据类型与lut相同//LUT查找表第一层uchar lutFirst[256];for (int i 0; i 256; i){if (i 100)lutFirst[i] 0;if (i 100 i 200)lutFirst[i] 100;if (i 200)lutFirst[i] 255;}Mat lutOne(1, 256, CV_8UC1, lutFirst);//LUT查找表第二层uchar lutSecond[256];for (int i 0; i 256; i){if (i 100)lutSecond[i] 0;if (i 100 i 150)lutSecond[i] 100;if (i 150 i 200)lutSecond[i] 150;if (i 200)lutSecond[i] 255;}Mat lutTwo(1, 256, CV_8UC1, lutFirst);//LUT查找表第三层uchar lutThird[256];for (int i 0; i 256; i){if (i 100)lutThird[i] 100;if (i 100 i 200)lutThird[i] 200;if (i 200)lutThird[i] 255;}Mat lutThree(1, 256, CV_8UC1, lutThird);//拥有三通道的LUT查找表矩阵vectorMatmergeMats;mergeMats.push_back(lutOne);mergeMats.push_back(lutTwo);mergeMats.push_back(lutThree);Mat LutTree;merge(mergeMats, LutTree);Mat img imread(2.jpg);Mat gray, out0, out1, out2;cvtColor(img, gray, COLOR_BGR2GRAY);LUT(gray, lutOne, out0);LUT(img, lutOne, out1);LUT(img, LutTree, out2);imshow(out0, out0);imshow(out1, out1);imshow(out2, out2);waitKey(0);图像尺寸改变
图像插值原理
在日常对图像进行操作的过程中会涉及到图像的放大与缩小这一系列的操作都是通过插值法来实现的opencv中resize()函数的实现原理0就是通过插值算法如果不对应用某种算法进行设置则默认采用双线性插值算法。 常用插值算法 最近邻法(Nearest Interpolation)计算速度最快但是效果最差。 双线性插值(Bilinear Interpolation)双线性插值是用原图像中4(22)个点计算新图像中1个点效果略逊于双三次插值速度比双三次插值快属于一种平衡美在很多框架中属于默认算法。 双三次插值(Bicubic interpolation)双三次插值是用原图像中16(44)个点计算新图像中1个点效果比较好但是计算代价过大。 jj’ 图像缩放
resize(InputArray src,OutputArray dst,Size dsize,double fx0,double fy0,int interpolation INTER_LINEAR)
dsize:输出图像的尺寸
fx:水平轴的比例因子如果将水平轴变为原来的两倍则赋值为2
fy垂直轴的比例因子
interpolation:插值方法的标志
图像翻转
filp(InputArray src,OutputArray dst,int flipCode)
flipCode:翻转方式标志数值大于0表示绕y轴进行翻转数值等于0表示绕x轴进行翻转数值小于0表示绕两个轴旋转图像拼接
//横向拼接要求高度一致
hconcat(InputArray src1,InputArray src2,OutputArray dst)
//垂直拼接要求宽度一致
vconcat(InputArray src1,InputArray src2,OutputArray dst) Mat img imread(2.jpg);Mat out,out1,out2,out3;// 缩小resize(img, out, Size(500,500),0, 0, INTER_AREA);// 最近邻插值resize(img, out1, Size(200, 200), 0, 0, INTER_NEAREST);//双线性插值resize(img, out2, Size(200, 200), 0, 0, INTER_LINEAR);//双三次插值resize(img, out3, Size(200, 200), 0, 0, INTER_CUBIC);Mat img_x, img_y, img_xy;flip(img, img_x, 0); //沿x轴对称翻转flip(img, img_y, 1); //沿y轴对称翻转flip(img, img_xy, -1);//沿x轴对称再y轴对称