JavaCV如何实现照片马赛克效果(javacv,开发技术)

时间:2024-04-29 20:05:47 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

准备工作

我们先引入 JavaCV 的依赖库

<dependency><groupId>org.bytedeco</groupId><artifactId>javacv-platform</artifactId><version>1.5.6</version></dependency>

这种方式引入,会把javacv 所有包含的都引入进来。平时测试使用都时候,可以这样操作。但是到真实项目中,还是需要做一次精简才行。

另外我们准备了一个图片。

JavaCV如何实现照片马赛克效果

代码实现

读取文件

valpath="path/to/img/"valimg=opencv_imgcodecs.imread(path+"meinv.jpeg")

获取原图的像素宽高,然后进行像素比缩放。

valsize=img.size()valheight=size.height()valwidth=size.width()valpixelSize=10valnewWidth=width/pixelSizevalnewHeight=height/pixelSize

根据设定的像素比, 对原图进行缩小,再放大的两次 resize 操作。这样就完成了像素图的处理。

valimgTmp:Mat?=nullopencv_imgproc.resize(img,imgTmp,Size(newWidth,newHeight),0.0,0.0,opencv_imgproc.INTER_NEAREST)opencv_imgproc.resize(img,imgTmp,Size(width,height),0.0,0.0,opencv_imgproc.INTER_NEAREST)

那我们来看下处理过之后的图像效果吧

效果看起来还可以,图片颜色单一图片尺寸稍微小一些的效果会好很多。

完整代码

importorg.bytedeco.opencv.global.opencv_highguiimportorg.bytedeco.opencv.global.opencv_imgcodecsimportorg.bytedeco.opencv.global.opencv_imgprocimportorg.bytedeco.opencv.opencv_core.Matimportorg.bytedeco.opencv.opencv_core.Sizefunmain(args:Array<String>){valpath="path/to/img/"valimg=opencv_imgcodecs.imread(path+"meinv.jpeg")valsize=img.size()valheight=size.height()valwidth=size.width()valpixelSize=10valnewWidth=width/pixelSizevalnewHeight=height/pixelSizevalimgTmp:Mat?=nullopencv_imgproc.resize(img,imgTmp,Size(newWidth,newHeight),0.0,0.0,opencv_imgproc.INTER_NEAREST)opencv_imgproc.resize(img,imgTmp,Size(width,height),0.0,0.0,opencv_imgproc.INTER_NEAREST)opencv_highgui.imshow("meinv",img);opencv_highgui.waitKey(0)}
 </div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
本文:JavaCV如何实现照片马赛克效果的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:springboot-curd基于mybatis项目搭建的示例分析下一篇:

4 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18