开闭操作

开闭操作依赖于腐蚀和膨胀组合成的新的形态学操作。开操作主要用于去除图形的噪声或元件间连接;而闭操作主要用于填充闭合区域。开闭操作主要场景是较小的特征范围。下面是其声明:

morphologyEx(src, dst, op, kernal);

各参数解释如下:

  • src
    表示此操作的源(输入图像)的Mat对象。

  • dst
    表示此操作的目标(输出图像)的Mat对象。

  • op
    操作行为,可为Imgproc.MORPH_CLOSEImgproc.MORPH_OPEN

  • kernal
    表示kerna对象,可以为任意形状。

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 = openAndClose(filePath);Platform.runLater(new Runnable() {@Overridepublic void run() {imageView.setImage(writableImage);}});} catch (IOException e) {e.printStackTrace();}}}).start();}private WritableImage openAndClose(String filePath) throws IOException {System.loadLibrary(Core.NATIVE_LIBRARY_NAME);Mat src = Imgcodecs.imread(filePath);Mat dst = new Mat();Mat kernal = Imgproc.getStructuringElement(Imgproc.MORPH_RECT, new Size(4,4), new Point(-1,-1));Imgproc.morphologyEx(src, dst, Imgproc.MORPH_CLOSE, kernal);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;}}

运行图

图 1 - 开操作

图 2 - 距离公路约1.5公里、高约20米处拍摄的夜晚公路场景,黄色亮点为路灯

图 3 - 闭操作

OpenCV.开闭操作相关推荐

  1. OpenCV——开闭操作

    目录 前言 正文 开操作 闭操作 其他形态学操作 顶帽 闭帽 梯度 基本梯度 内外梯度 参考 前言 开操作和闭操作都是基于膨胀和腐蚀操作组合形成的.先腐蚀再膨胀就是开操作,先膨胀再腐蚀就是闭操作了.用 ...

  2. 【图像处理】——Python OpenCV实现形态学膨胀、腐蚀开闭操作(可以用于图像滤波、图像分割等)

    转载博客请注明详细地址,谢谢 本文讲了形态学基本操作膨胀腐蚀开闭操作的原理 本文讲解了用OpenCV-Python实现形态学操作 目录 一.形态学简述 1.简介 2.一些基本定义 3.结构元素 (1) ...

  3. python opencv打开图片 关闭_自学python-opencv(9)图像开闭操作

    开操作(Open) 图像形态学的重要操作之一,基于膨胀与腐蚀操作组合形成的 主要是应用在二值图像分析中,灰度图像亦可 开操作=腐蚀+膨胀,输入图像+结构元素 --------------------- ...

  4. 图像的形态学开操作(开运算)和闭操作(闭运算)的概念和作用,并用OpenCV的函数morphologyEx()实现对图像的开闭操作

    大家看这篇博文前可以先看一看下面这篇博文,下面这篇博文是这篇博文的基础: 详解图像形态学操作之图形的腐蚀和膨胀的概念和运算过程,并利用OpenCV的函数erode()和函数dilate()对图像进行腐 ...

  5. 开闭操作进行平滑处理与边缘提取

    1,开闭操作进行平滑处理 %开闭处理平滑处理 clear,clc,close all; Image = rgb2gray(imread('pic01.bmp'));BW = imbinarize(Im ...

  6. OpenCV 开闭运算

    开运算和闭运算是将腐蚀和膨胀按照一定的次序进行处理. 但这两者并不是可逆的,即先开后闭并不能得到原来的图像. 开运算 开运算是先腐蚀后膨胀,其作用是:分离物体,消除小区域.特点:消除噪点,去除小的干扰 ...

  7. C++ OpenCV形态学操作--开闭操作,形态学梯度,顶帽,黑帽

    https://my.oschina.net/u/4582134/blog/4582844

  8. Opencv开闭运算去除反光噪声

    开运算: #include<opencv2/opencv.hpp> #include<iostream> #include<math.h>using namespa ...

  9. opencv 实现图像形态学操作 膨胀和腐蚀 开闭运算 形态学梯度 顶帽和黑帽

    图像膨胀和腐蚀 图解 原理及python实现 更多内容:图像膨胀和腐蚀原理及python实现 opencv中膨胀和腐蚀函数 dilation = cv.dilate(img, kernel) # 膨胀 ...

最新文章

  1. 【ZooKeeper Notes 9】ZooKeepr日志清理
  2. 两个list关联合并_算法分享---两个有序链表的合并(C语言)
  3. 由单例模式造成的内存泄漏
  4. python参数检验框架_基于python的人员识别检测框架研究
  5. sql ntext 替换存储过程
  6. 基于JavaWeb实现的研究室综合系统
  7. Linux 系统 vim 编辑器使用简明教程
  8. 大二实习使用的技术汇总(中)
  9. 遗传算法的原理与python实现
  10. awgn信道matlab,AWGN信道下数字通信系统的蒙特卡洛仿真(基于matlab).doc
  11. 启用IIS7配置ASP运行环境的详细方法
  12. 权威DNS、递归DNS以及DNS相关排名
  13. android显示输入法键盘布局,android 解决输入法键盘遮盖布局问题
  14. app开发快速理解——webview网页显示
  15. 使用批处理批量安装TCP/ip打印机
  16. 万丈高楼平地起,基础很重要
  17. 都快2021年了,居然还有人不会MECE
  18. Vue商城——首页功能
  19. 通过西部世界来盘点近来人工智能研究的发展
  20. linux下repo是什么文件夹,yum的repo文件详解、以及epel简介、yum源的更换

热门文章

  1. 使用auto.js实现自动化每日打卡
  2. 高中毕业,要选专业,有什么好的专业推荐吗?
  3. 如何在Mac上复制和粘贴
  4. 动手学深度学习之物体检测算法R-CNN,SSD,YOLO
  5. 将门禁卡写入到手机、手环,加密卡也能写
  6. pandas读取mysql中的数据
  7. 分布式计算框架(一)介绍
  8. Linux 3: Database development technology | Linux
  9. 阿里云,腾讯云,保利威视,金山云,七牛云的视频云方案的不同之处。
  10. 2021涨薪 |IT项目管理人士职业生涯必备证书之DevOps系列