OpenCV.高斯模糊
高斯模糊
均值模糊系kernal系数均相等情况下,实际上还存在着在空间上由于相对位置不同而引起kernal中每个系数有不同的权重的模糊,称之为高斯模糊。高斯模糊的每个系数的权重由高斯正态分布而生成,根据高斯公式可知,当δ为1时,对于kernal而言,越在卷积核中心,其系数越高。当然,δ越大,其模糊程度也越明显。在OpenCV中,高斯模糊由Gaussianblur() 实现,该函数定义如下:
GaussianBlur(src, dst, ksize, sigmaX)
各参数解释如下:
src
表示此操作的源(输入图像)的Mat对象。dst
表示此操作的目标(输出图像)的Mat对象。ksize
表示内核大小的Size对象。sigmaX
类型变量double表示X方向上的高斯核标准差(模糊程度)。
实际上还存在sigmaY 该参数,当其不填写时表示由sigmaX计算得到。当ksize非零时,sigmaX则有kisze计算得到,当kisze为零时,sigmaX则必须填写。
高斯模糊能够起到抑制噪声的作用,通常其kernal的ksize为5x5或3x3。
Java代码(JavaFX Controller层)
public class Controller{@FXML private Text fxText;@FXML private ImageView imageView;@FXML public void handleButtonEvent(ActionEvent actionEvent) throws IOException {Node source = (Node) actionEvent.getSource();Window theStage = source.getScene().getWindow();FileChooser fileChooser = new FileChooser();FileChooser.ExtensionFilter extFilter = new FileChooser.ExtensionFilter("PNG files (*.png)", "*.png");fileChooser.getExtensionFilters().add(extFilter);fileChooser.getExtensionFilters().add(new FileChooser.ExtensionFilter("JPG Files(*.jpg)", "*.jpg"));File file = fileChooser.showOpenDialog(theStage);runInSubThread(file.getPath());}private void runInSubThread(String filePath){new Thread(new Runnable() {@Overridepublic void run() {try {WritableImage writableImage = blurOfGaussian(filePath);Platform.runLater(new Runnable() {@Overridepublic void run() {imageView.setImage(writableImage);}});} catch (IOException e) {e.printStackTrace();}}}).start();}private WritableImage blurOfGaussian(String filePath) throws IOException {System.loadLibrary(Core.NATIVE_LIBRARY_NAME);Mat src = Imgcodecs.imread(filePath);Mat dst = new Mat();Imgproc.GaussianBlur(src, dst, new Size(25,25), 0);MatOfByte matOfByte = new MatOfByte();Imgcodecs.imencode(".jpg", dst, matOfByte);byte[] bytes = matOfByte.toArray();InputStream in = new ByteArrayInputStream(bytes);BufferedImage bufImage = ImageIO.read(in);WritableImage writableImage = SwingFXUtils.toFXImage(bufImage, null);return writableImage;}}
运行图
OpenCV.高斯模糊相关推荐
- opencv 高斯模糊
opencv 高斯模糊 import numpy as np import cv2 from scipy import ndimagek33=np.array([[-1,-1,-1],[-1,8,-1 ...
- 在 Python 中使用 OpenCV 高斯模糊我这张的丑脸
@Author:Runsen 谁都无法否认,长得好看的人就是更具有吸引力,赏心悦目谁都喜欢.好看的人无论在职场或情场,都一定更占优势. 但是,此「颜值」非彼「颜值」.一说到「颜值」,大部分想到的是脸蛋 ...
- C++ opencv高斯模糊
1.高斯模糊 常用的模糊算法有两种,一种是均值(盒子),一种是高斯. 现在我们来介绍一下高斯 模糊 首先我们了解一下什么是模糊 模糊就是对图像进行平滑化处理. 平滑化处理,就是用平滑滤波函数,生成卷积 ...
- OpenCV角点检测: Harris算子, ShiTomasi算子
角点检测 角点的特征检测与匹配是Computer Vision 应用总重要的一部分,这需要寻找图像之间的特征建立对应关系.点,也就是图像中的特殊位置,是很常用的一类特征,点的局部特征也可以叫做&quo ...
- OpenCV中的模糊处理(python)
OpenCV中的模糊处理 前言 1.写在模糊理解前 1.1什么是卷积 1.2滤波器 2.模糊方式 2.1均值模糊(滤波) 2.2中值模糊 2.3高斯模糊 总结 前言 接到考核任务. 在学OpenCV模 ...
- 小白学python(opencv模糊)
小白学python(opencv模糊) 模糊 均值模糊 中值模糊 自定义模糊 高斯模糊 双边模糊 今天稍微学学模糊有关知识,发出来记录以一下. 模糊 #像的模糊是图像处理中比较常用和简单的处理手段之一 ...
- autojs某音霓虹特效
牙叔教程 简单易懂 效果展示 缘起 群里有人问某音的霓虹特效怎么做, 并发了图片, 看着还有点意思, 就研究了一下 autojs版本 9.0.4 思路 你将学到以下知识点 初始化opencv open ...
- opencv4算法库学习笔记(5万多字超长干货——纪念奋战的自己)
整理于2020年初三个月的日夜积累... 参考链接 opencv安装 安装脚本链接:https://github.com/milq/milq/blob/master/scripts/bash/inst ...
- 模糊处理(下)--高斯模糊,双边模糊以及实现一个简单的磨皮美颜效果(opencv学习记录--4)
文章目录 1.高斯模糊 1.什么是高斯模糊 2.opencv提供的API 2.双边模糊 1.什么是双边模糊 2.opencv的API 3.磨皮美颜效果的实现 1.实现过程 2.主要代码 3.效果 参考 ...
最新文章
- WSS 代码执行的权限提升
- salt 基本组建之 grains,pillars(整理中)
- hdu2068RPG的错排
- 物流设计大赛优秀作品_独家!亲历全国大学生物流设计大赛,队员、老师、专家这样说...
- git远程版本硬删除
- SQL语句使用总结(一)
- (39)FPGA四种常用逻辑门(与非门)
- javascript学习----window对象的学习与总结
- 171.Excel表列序号
- C语言中的清屏函数(自己编写)
- java微信小程序接口openid过期_Java微信小程序登录接口获取openid
- vue关于接口请求数据过大导致浏览器崩溃
- 时空数据可视化_穿越时空的可视化4陆地导航的上半生
- 打印表格打印机没有反应_打印机没反应怎么回事
- 高层要有事业心,中层要有进取心,基层要有责任心!
- Javaweb学习第三天,CSS(知识点来自广陵散老师总结)
- 人事管理系统是什么?HR系统有什么用?
- 天创速盈带您速读:怎么提升拼多多关键词综合排名?方案如下
- 用豆瓣源安装pytorch1.5.1(速度很快)
- ipguard应用程序配置详解