OpenCV如何实现普通阈值
发表于:2025-01-18 作者:千家信息网编辑
千家信息网最后更新 2025年01月18日,这篇文章主要讲解了"OpenCV如何实现普通阈值",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"OpenCV如何实现普通阈值"吧!普通阈值阈值本质上就是
千家信息网最后更新 2025年01月18日OpenCV如何实现普通阈值
这篇文章主要讲解了"OpenCV如何实现普通阈值",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"OpenCV如何实现普通阈值"吧!
普通阈值
阈值本质上就是对图像进行分割的一个过程。利用阈值二值化可对灰度或彩色图像进行像素数据分类。普通阈值即阈值二值化就是针对给定的图像,以T作为阈值进行分割的过程。在OpenCV中该类的实现依赖于threshold() 函数。下面是该函数的声明:
threshold(src, dst, thresh, maxval, type);
各参数解释
·src
表示此操作的源(输入图像)的Mat对象。
·mat
表示目标(输出)图像的类Mat的对象。
·thresh
表示阈值T。
·maxval
表示最大灰度值,一般为255。
·type
表示要使用的阈值类型的整数类型变量,阈值二值化为Imgproc.THRESH_BINARY。
其数学描述解释如下:
对于给定的src(x,y),若其像素值大于阈值T(thresh),则其返回像素最大值,否则为0。
那么dst其像素描述如下:
Java代码(JavaFX Controller层)
public class Controller{ @FXML private Text fxText; @FXML private ImageView imageView; @FXML private Label resultLabel; @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() { @Override public void run() { try { WritableImage writableImage = thresholdOfBinary(filePath); Platform.runLater(new Runnable() { @Override public void run() { imageView.setImage(writableImage); } }); } catch (IOException e) { e.printStackTrace(); } } }).start(); } private WritableImage thresholdOfBinary(String filePath) throws IOException { System.loadLibrary(Core.NATIVE_LIBRARY_NAME); Mat src = Imgcodecs.imread(filePath); Mat dst = new Mat(); Imgproc.threshold(src, dst, 150, 255, Imgproc.THRESH_BINARY); 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如何实现普通阈值这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
阈值
普通
图像
像素
就是
学习
最大
内容
函数
对象
灰度
类型
过程
解释
代码
参数
变量
彩色
思路
情况
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库用户信息加密
服务器加电10分钟再启动
网络安全管理大赛视频下载
数据通信与网络技术期末考试
张家港营销网络技术服务价格
疾控网络安全自查报告
江苏综合软件开发定制价格
报名教资时内部服务器错误
网络安全有哪几所大学有
网络安全方案范本
八年级网络安全试讲
顶岗实习软件开发周记
我的世界电脑离线模式服务器
数据库分页查询编号的解释
一级建造师网络安全
中专网络安全专业怎么样
asp列表数据库分页代码
光明人口管理服务器
当前地区无法进入服务器
数据库sql的record难吗
异地服务器加域
如何选购 服务器
破坏水资源的数据库
web服务器访问爆满
互联网下的金融科技有限公司
网络安全方案范本
想学网络技术做网络项目
澳门 网络安全
你的dns服务器真的安全么
gdc服务器备份恢复