OpenCV图像二值化

1.二值图像

  • 灰度图像 0 - 255
  • 二值图像 0(黑) / 255(白)

2.二值分割

五种阈值分割方法(阈值T):

  • 大于T为255,小于T为0

  • 大于T为0,小于T为255

  • 小于T为原值 else T

  • 小于T为0 else 原值

  • 大于T为0 else 原值

    QString appPath = QCoreApplication::applicationDirPath();QString imagePath = appPath + "/A.jpg";Mat img = cv::imread(imagePath.toStdString()); if (img.empty()) {return;}namedWindow("input", WINDOW_AUTOSIZE);imshow("input", img);//To gray imageMat gray,binary;cvtColor(img, gray, COLOR_BGR2GRAY);imshow("gray", gray);//二值化threshold(gray, binary, 127, 255, THRESH_BINARY);imshow("THRESH_BINARY", binary);threshold(gray, binary, 127, 255, THRESH_BINARY_INV);imshow("THRESH_BINARY_INV", binary);//阈值化threshold(gray, binary, 127, 255, THRESH_TRUNC);imshow("THRESH_TRUNC", binary);threshold(gray, binary, 127, 255, THRESH_TOZERO);imshow("THRESH_TOZERO", binary);threshold(gray, binary, 127, 255, THRESH_TOZERO_INV);imshow("THRESH_TOZERO_INV", binary);waitKey();destroyAllWindows();

3.阈值

(1)全局阈值

Scalar m = mean(gray);
threshold(gray, binary, m[0], 255, THRESH_BINARY);
imshow("THRESH_BINARY", binary);//OTSU
double m_otsu = threshold(gray, binary, 0, 255, THRESH_BINARY | THRESH_OTSU);
imshow("THRESH_BINARY_OTSU", binary);//三角法:X光片等
double m_triangle = threshold(gray, binary, 0, 255, THRESH_BINARY | THRESH_TRIANGLE);
imshow("THRESH_BINARY_TRIANGLE", binary);

(2)自适应阈值

//均值c
adaptiveThreshold(gray, binary, 255, ADAPTIVE_THRESH_MEAN_C, THRESH_BINARY, 25,10);
imshow("ADAPTIVE_THRESH_MEAN_C", binary);//高斯c
adaptiveThreshold(gray, binary, 255, ADAPTIVE_THRESH_GAUSSIAN_C, THRESH_BINARY, 25, 10);
imshow("ADAPTIVE_THRESH_GAUSSIAN_C", binary);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/777057.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

直面位运算

在这篇文章之前,笔者只是简单了解过位运算相关概念,但是每次刷LeetCode碰到位运算相关题目,都会敬而远之。一方面是觉得看起来晦涩难懂,另一方面觉得日常开发用处不大。 近期本着学习的目的,静下心来研究了一下&#x…

自己如何利用简单的代码,生成一个小游戏

原文:dlshuhua.com/post/79125.html 要生成一个小游戏,我们可以使用许多不同的编程语言和框架。这里,我将给出一个使用Python和其内置库tkinter创建简单猜数字游戏的例子。这个游戏的工作原理是:程序随机生成一个1到100之间的数字…

单链表的插入和删除

一、插入操作 按位序插入(带头结点): ListInsert(&L,i,e):插入操作。在表L中的第i个位置上插入指定元素e。 typedef struct LNode{ElemType data;struct LNode *next; }LNode,*LinkList;//在第i 个位置插插入元素e (带头结点) bool Li…

国内IP切换软件:解锁网络世界的新钥匙

在数字化快速发展的今天,互联网已成为我们生活中不可或缺的一部分。然而,伴随着网络使用的深入,许多用户逐渐意识到,不同的IP地址可能会带来截然不同的网络体验。为了应对这一问题,国内IP切换软件应运而生,…

Rust引用借用 vs 原始指针

let v: i32 10; let v1 &v; let a: *const i32 &v; println!("a{:p}", a); let b a as *mut i32; //无法从&v直接转换成*mut i32,需要从*const i32过度 println!("b{:p}", b); unsafe {*b1; } println!("v{} v1{}"…

c++部分题

const关键字与宏定义的区别是什么? const关键字和宏定义在功能上有相似之处,但在实现和使用上有很大的区别。 作用域和类型安全性: const关键字定义的常量具有作用域和类型安全性。它们的作用域仅限于声明它们的块,并且在编译时会…

iOS客户端自动化UI自动化airtest+appium从0到1搭建macos+脚本设计demo演示+全网最全最详细保姆级有步骤有图

Android客户端自动化UI自动化airtest从0到1搭建macos脚本设计demo演示全网最全最详细保姆级有步骤有图-CSDN博客 避坑系列-必读: 不要安装iOS-Tagent ,安装appium -这2个性质其实是差不多的都是为了安装wda。注意安装appium最新版本,安装完…

结构体,联合体,枚举( 1 )

目录 前言 1.结构体 1.1结构体的声明 1.2结构体变量的创建和初始化 1.3结构体成员的访问字符 1.4结构体的内存大小 1.4.1对齐规则 1.5结构体传参 前言 在编程的世界里,数据结构的选择对于程序的效率和可读性有着至关重要的影响。不同的数据结构适用于不同的…

19. 变量

文章目录 一、变量二、变量的定义格式 一、变量 变量:程序中临时存储数据的容器,在程序执行过程中,其值有可能发生改变的量(数据)。但是这个容器中只能存一个值。 应用场景:在我们登录页面的时候&#xf…

2024最新华为OD机试试题库全 -【符号运算】- C卷

1. 🌈题目详情 1.1 ⚠️题目 给定一个表达式,求其分数计算结果。 表达式的限制如下: 所有的输入数字皆为正整数(包括0)仅支持四则运算(*/)和括号结果为整数或分数,分数必须化为最简格式(比如6,3/4,7/8,90/7)除数可能为0,如果遇到这种情况,直接输出"ERR…

C++多重继承与虚继承

多重继承的原理 多重继承(multiple inheritance)是指从多个直接基类中产生派生类的能力。 多重继承的派生类继承了所有父类的属性。 在面向对象的编程中,多重继承意味着一个类可以从多个父类继承属性和方法。 就像你有一杯混合果汁,它是由多种水果榨取…

Spring Boot(一)— Maven

Maven是一个跨平台的项目管理工具,主要服务于基于Java平台的项目构建、依赖管理和项目信息管理。通过其项目对象模型(POM),可以自动下载和管理项目所需的库和插件。 1 Maven 以上的pom.xml 包含了在开发中常用的标签与功能。 &…

KY7 质因数的个数(用Java实现)

描述 求正整数N(N>1)的质因数的个数。 相同的质因数需要重复计算。如1202*2*2*3*5&#xff0c;共有5个质因数。 输入描述&#xff1a; 可能有多组测试数据&#xff0c;每组测试数据的输入是一个正整数N&#xff0c;(1<N<10^9)。 输出描述&#xff1a; 对于每组数…

46.continue语句

目录 一.continue语句 二.视频教程 一.continue语句 continue语句的作用和break语句很像&#xff0c;break语句会跳出当前循环&#xff0c;而continue语句则是跳出本次循环&#xff0c;继续执行下一次循环。 举个例子&#xff1a; #include <stdio.h>void main(void)…

蓝桥杯练习题总结(三)线性dp题(摆花、数字三角形加强版)

目录 一、摆花 思路一&#xff1a; 确定状态&#xff1a; 初始化&#xff1a; 思路二&#xff1a; 确定状态&#xff1a; 初始化&#xff1a; 循环遍历&#xff1a; 状态转移方程&#xff1a; 二、数字三角形加强版 一、摆花 题目描述 小明的花店新开张&#xff0c;为了吸…

计算机组成原理 — 指令系统

指令系统 指令系统指令的概述指令的格式指令的字长取决于 操作数类型和操作种类操作数的类型数据在存储器中的存放方式操作类型 寻址方式指令寻址数据寻址立即寻址直接寻址隐含寻址间接寻址寄存器寻址寄存器间接寻址基址寻址变址寻址堆栈寻址 RISC 和 CISC 技术RISC 即精简指令…

软件测试之单元测试详解

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 关注公众号&#xff1a;互联网杂货铺&#xff0c;回复1 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 一、什么是单元测试&#xff1f; 单元测试是指&#xf…

「AI作曲家」Suno 使用 v3 在几秒钟内创作完整的两分钟歌曲

Suno 被誉为“音乐界的 ChatGPT”,它的独特之处在于能够根据简单的提示,自主创作包括歌词、人声和配器在内的完整音乐作品。更令人惊叹的是,你可以引导它精确地选择任何想要的音乐风格,从古老的三角洲蓝调到现代的电子寒潮,它还能灵活运用各种方言。 Suno 正在开启一个全…

【学习笔记】java项目—苍穹外卖day01

文章目录 苍穹外卖-day01课程内容1. 软件开发整体介绍1.1 软件开发流程1.2 角色分工1.3 软件环境 2. 苍穹外卖项目介绍2.1 项目介绍2.2 产品原型2.3 技术选型 3. 开发环境搭建3.1 前端环境搭建3.2 后端环境搭建3.2.1 熟悉项目结构3.2.2 Git版本控制3.2.3 数据库环境搭建3.2.4 前…

1-java运算符试题

一、选择题&#xff08;10个&#xff09; 下列哪个是Java中的赋值运算符&#xff1f; A. B. - C. D. * 答案&#xff1a;C对于表达式a 5; b 10; a b * 2&#xff0c;其结果是&#xff1f; A. 15 B. 20 C. 25 D. 30 答案&#xff1a;C下列哪个符号表示短路逻辑与&#xff…