站长素材官网免费,注册一个app平台需要多少钱,网站建设属于应用软件吗,个人网站设计模板下载专栏简介 #x1f492;个人主页 #x1f4f0;专栏目录 点击上方查看更多内容 #x1f4d6;心灵鸡汤#x1f4d6;我们唯一拥有的就是今天#xff0c;唯一能把握的也是今天建议把本文当作笔记来看#xff0c;据说专栏目录里面有相应视频#x1f92b; #x1f9ed;文… 专栏简介 个人主页 专栏目录 点击上方查看更多内容 心灵鸡汤我们唯一拥有的就是今天唯一能把握的也是今天建议把本文当作笔记来看据说专栏目录里面有相应视频 文章导航 ⬆️ 10.特殊的Mat类汇总二 ⬇️ 12.HighGui之图像窗口显示 Imgcodecs之图像读写 一、字段二、读取图像1.读取单页图像1.imread2.imdecode(Mat buf, int flags) 2.读取多页图像1.imreadmulti2.imdecodemulti 3.haveImageReader4.imcount 三、保存图像1.保存单页图像1.imwrite2.imencode 2.保存多页图像1.imwritemulti 2.haveImageWriter Imgcodecs类用于读取和保存图像。 一、字段
仅列举部分常用的字段
字段描述 IMREAD_ANYDEPTH如果设置将返回16位/32位图像否则将转换为8位IMREAD_COLOR指定在加载图像时总是将其作为彩色图像读取默认设置。如果原始图像是单通道黑白图它将被转换为彩色图IMREAD_GRAYSCALE指定在加载图像时总是将其作为灰度图像单通道读取IMREAD_ANYCOLOR如果设置图像将以任何可能的颜色格式读取IMREAD_REDUCED_COLOR_2以彩色模式读取图像但图像的尺寸被缩小为原始尺寸的1/2IMREAD_REDUCED_GRAYSCALE_2以灰度模式读取图像但图像的尺寸被缩小为原始尺寸的1/2IMWRITE_PAM_FORMAT_RGB表示图像将以红绿蓝RGB颜色模型存储这是彩色图像的标准格式IMWRITE_JPEG_SAMPLING_FACTOR_444 设置JPEG色度子采样率为4:4:4这是最高的色彩分辨率
二、读取图像 仅列举部分方法。
1.读取单页图像
1.imread
1.从文件中加载图像 imread(java.lang.String filename, int flags) 参数 filename要加载的文件的地址 flags 标志,可以是IMREAD_*其一 Mat imread Imgcodecs.imread(img.png,Imgcodecs.IMREAD_GRAYSCALE);HighGui.imshow(imraed,imread);HighGui.waitKey();2.imdecode(Mat buf, int flags) 从内存中的缓冲区读取图像。如果缓冲区太短或包含无效数据则该函数返回一个空矩阵。
2.读取多页图像 从文件中读取图像序列特别是多页图像文件如 TIFF
1.imreadmulti imreadmulti(java.lang.String filename, java.util.List mats, int start, int count, int flags) 参数 filename要加载的文件的地址 mats Mat 对象的列表用于存储读取的每一页图像start 指定从文件中的哪一页开始读取count指定要读取的页数flags标志,可以是IMREAD_*其一
2.imdecodemulti 从内存中的缓冲区读取多页图像
3.haveImageReader 如果指定的图像可以被OpenCV解码则返回true
4.imcount 获取给定文件中的图像数量。 imcount(java.lang.String filename, int flags) 参数 filename要加载的文件的地址 flags标志,可以是IMREAD_*其一
三、保存图像 将图像写入到文件或缓存中
1.保存单页图像
1.imwrite imwrite(java.lang.String filename, Mat img, MatOfInt params) 参数 filename文件的名称 img要保存的图像params 特定于格式的参数以对的形式编码paramId_1, paramValue_1, paramId_2, paramValue_2, ... Mat imread Imgcodecs.imread(img.png);//质量压缩 80%MatOfInt params new MatOfInt(Imgcodecs.IMWRITE_JPEG_QUALITY,80);Imgcodecs.imwrite(param.png,imread,params);请自行验证压缩后的文件大小
2.imencode 将图像编码为内存缓冲区中的数据 imencode(java.lang.String ext, Mat img, MatOfByte buf, MatOfInt params) 参数 ext定义输出格式的文件扩展名。必须以点开头 img 要写入的图像buf 调整为适合压缩图像的输出缓冲区params特定于格式的参数以对的形式编码paramId_1, paramValue_1, paramId_2, paramValue_2, ... Mat imread Imgcodecs.imread(img.png);//质量压缩 80%MatOfInt params new MatOfInt(Imgcodecs.IMWRITE_JPEG_QUALITY,80);//写入缓存中MatOfByte matOfByte new MatOfByte();Imgcodecs.imencode(.png,imread,matOfByte,params);System.out.println(matOfByte matOfByte);//读取缓存中的数据Mat imdecode Imgcodecs.imdecode(matOfByte, Imgcodecs.IMREAD_COLOR);HighGui.imshow(imdecode,imdecode);HighGui.waitKey();请自行验证
2.保存多页图像
1.imwritemulti 将多个图像保存到一个多页图像文件中。 imwritemulti(java.lang.String filename, java.util.List img, MatOfInt params) 参数 filename要创建的文件的名称img 一个 Mat 对象的列表每个 Mat 对象代表一个图像params 与图像格式相关的参数例如压缩的类型和质量。这是可选的具体取决保存的文件格式 Mat src1 Imgcodecs.imread(src1.jpg);Mat src2 Imgcodecs.imread(src2.jpg);List matList new ArrayList();matList.add(src1);matList.add(src2);Imgcodecs.imwritemulti(ims.tif,matList);2.haveImageWriter 如果具有指定文件名的图像可以被OpenCV编码则返回true