JavaCV如何实现照片马赛克效果
导读:本文共1333字符,通常情况下阅读需要4分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要: 准备工作我们先引入 JavaCV 的依赖库<dependency><groupId>org.bytedeco</groupId><artifactId>javacv-platform</artifactId><version>1.5.6</version></dep... ...
音频解说
目录
(为您整理了一些要点),点击可以直达。准备工作
我们先引入 JavaCV 的依赖库
<dependency><groupId>org.bytedeco</groupId><artifactId>javacv-platform</artifactId><version>1.5.6</version></dependency>
这种方式引入,会把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如何实现照片马赛克效果的详细内容,希望对您有所帮助,信息来源于网络。