灰度阈值变换之c++实现(qt + 不调包)

news2024/11/18 2:11:50

    本章介绍灰度阈值变换的基本原理和实现方法,它用于产生二值图。

 

1.基本原理

    我觉得不用过多介绍,就是一个普通得不能再普通的二值化操作

2.代码实现(代码是我以前自学图像处理时写的,代码很粗糙没做任何优化,但很好理解

    此代码中“origiin”一般为灰度图片,彩色图片转灰度图片,可参考我的一篇博客:彩色图转灰度图之c++实现(qt + 不调包)

/*灰度阈值变化函数*/
/*thr  为阈值*/
QImage* MainWindow::ThrTrans(QImage* origiin, int thr)
{
    QImage* newImage = new QImage(origiin->width(), origiin->height(), QImage::Format_ARGB32);

    QColor oldColor;
    int r, g, b;
    for(int y = 0; y < newImage->height(); y++)
    {
        for(int x = 0; x < newImage->width(); x++)
        {
             oldColor = QColor(origiin->pixel(x,y));
             if(oldColor.red() >= thr)
                 r = 255;
             else
                 r = 0;
             if(oldColor.green() >= thr)
                 g = 255;
             else
                 g = 0;
             if(oldColor.blue()>= thr)
                 b = 255;
             else
                 b = 0;
             newImage->setPixel(x, y, qRgb(r, g, b));
        }
    }
    return newImage;
}

3.参考资料

    数字图像处理——技术详解与Visual C++实践(左飞等著),写代码与写博客的时间相差两年,至于还参考其他的资料不,我已经忘记了,如若需要,我可以补上去

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

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

相关文章

海外跨境贸易全开源线上商城搭建--无货源一键铺货模式

要搭建一个海外跨境贸易全开源线上商城并实现无货源一键铺货模式&#xff0c;以下是一些步骤和注意事项&#xff1a; 1. 选择适合的开源平台&#xff1a;首先&#xff0c;需要选择一个适合的开源平台作为商城的基础架构。根据企业的需求和技术实力&#xff0c;选择一个稳定、功…

ubuntu 如何命令行打开系统设置(Wifi,网络,应用程序...)

关于GNOME GNOME 是一个自由、开放源代码的桌面环境&#xff0c;它运行在 Linux 和其他类 UNIX 操作系统上。它是 GNU 项目的一部分&#xff0c;旨在为 Linux 操作系统提供一个现代化、易于使用的用户界面。 GNOME 桌面环境包括许多应用程序&#xff0c;例如文件管理器、文本编…

Python 爬虫实战:驾驭数据洪流,揭秘网页深处

前言 随着互联网的发展&#xff0c;数据变得越来越重要&#xff0c;爬虫技术也越来越受到人们的关注。爬虫技术可以帮助我们自动化地抓取网络数据&#xff0c;从而提高数据的利用价值。但是&#xff0c;在爬虫过程中&#xff0c;很容易被目标网站识别出来&#xff0c;甚至被封…

多个QLabel中文字左右对其问题研究

众所周知&#xff0c;关于QLabel 中的文字对其方式&#xff0c;官方提供多种&#xff0c;具体可参考 AlignmentFlag&#xff0c;这里就不详细列举了。 实际开发中有这样一个需求&#xff1a;多个lab中&#xff0c;文字显示不同&#xff0c;长度不一&#xff0c;但想要实现视觉…

基于历史对比学习的时序知识图谱推理(AAAI2023)

知识图谱顶会小记 论文标题 Temporal Knowledge Graph Reasoning with Historical Contrastive Learning 论文链接 https://arxiv.org/pdf/2211.10904.pdf GitHub地址 https://github.com/xyjigsaw/CENET 关键词 Linked Open Data, Knowledge Graphs & KB Completi…

Java多线程(七)

目录 一、线程池参数介绍 二、线程池的工作流程 三、使用Executors创建常见的线程 一、线程池参数介绍 为了深入的了解线程池&#xff0c;这里就需要明白线程中的各种参数的含义。下述的图片中是来自于Java标准库中对线程池描述。 1.corePoolSize 与 maximumPoolSize 其中core…

机器学习-自定义Loss函数

1、简介 机器学习框架中使用自定义的Loss函数&#xff0c; 2、应用 &#xff08;1&#xff09;sklearn from sklearn.metrics import max_error from sklearn.metrics import make_scorer from sklearn.model_selection import cross_val_score from sklearn.linear_model …

Flowable-泳池泳道

目录 说明视频教程 说明 流程图描述一个过程的步骤&#xff0c;当这个过程涉及许多不同的人&#xff0c;部门或功能区域时&#xff0c;很难跟踪每 个步骤的负责人。解决此问题的一个有用方法是把流程图分栏&#xff0c;BPMN 中提供了泳池、泳道来支持 这种场景。泳池泳道在流程…

机器学习(十八):Bagging和随机森林

全文共10000余字&#xff0c;预计阅读时间约30~40分钟 | 满满干货(附数据及代码)&#xff0c;建议收藏&#xff01; 本文目标&#xff1a;理解什么是集成学习&#xff0c;明确Bagging算法的过程&#xff0c;熟悉随机森林算法的原理及其在Sklearn中的各参数定义和使用方法 代码…

国内什么牌子的ipad手写笔好用?适合绘画电容笔推荐

对于那些想要用ipad来学习的人来说&#xff0c;苹果Pencil是必不可少的。但是&#xff0c;Apple Pencil的价格真的太贵了&#xff0c;以至于很多人都买不起。所以&#xff0c;最好的办法就是选用一支平替的电容笔。本人从前几年就开始使用iPad&#xff0c;同时本身也是一位数码…

图 ML 中的去噪扩散生成模型

Denoising Diffusion Generative Models in Graph ML | by Michael Galkin | Towards Data Science (medium.com) 一、说明 AI DDPM 代表【"Adaptive Importance Density Power Mixture Model" 】即“自适应重要性密度幂混合模型”&#xff0c;是一种用于密度估计的机…

检测代理IP匿名程度的实用方法

在当今数字化的世界中&#xff0c;使用代理IP已成为保护个人隐私和增强网络安全的常见做法。然而&#xff0c;不同代理IP的匿名程度各异&#xff0c;有些可能具有较高的匿名性&#xff0c;而另一些则可能暴露了用户的真实身份和位置。 因此&#xff0c;了解如何检测代理IP的匿…

动态内存空间管理

欢迎来到我的 世界 ^ _ ^希望作者的文章对你有所帮助&#xff0c;有不足的地方还请指正&#xff0c;大家一起学习交流 ! 文章目录 前言&#xff1a;动态内存是什么一、动态内存介绍&#xff1a;动态内存有关函数介绍1.malloc和free2.calloc函数3.realloc函数 二、一些常见的动态…

虹科案例 | 台积电为保证光罩运输质量选择MSR冲击振动记录仪!内含台积电工程师专访

晶圆运输需要注意什么&#xff1f; 晶圆运输是半导体制造过程中极为关键和敏感的一环。在晶圆运输过程中&#xff0c;需要注意以下几点&#xff1a; 1、静电防护 晶圆非常容易受到静电的干扰&#xff0c;因此在运输过程中需要遵守严格的静电防护措施。使用适当的静电防护包装…

数据库|同城双中心 DR Auto-Sync 主中心意外故障恢复

一、前言 最近&#xff0c;我一直在各个地方进行 TiDB 的 Poc 测试。在这些测试中&#xff0c;客户特别关注同城双中心或者两地三中心的架构体系&#xff0c;经常会找我了解 TiDB 灾备架构的实现方案和底层逻辑。基于客户对 RPO 0 的要求&#xff0c;我一般会向他们介绍 DR Au…

Flume原理剖析

一、介绍 Flume是一个高可用、高可靠&#xff0c;分布式的海量日志采集、聚合和传输的系统。Flume支持在日志系统中定制各类数据发送方&#xff0c;用于收集数据&#xff1b;同时&#xff0c;Flume提供对数据进行简单处理&#xff0c;并写到各种数据接受方&#xff08;可定制&…

软件安全测试包含哪些内容和方法?安全测试报告的必要性

软件安全测试是一种通过模拟真实攻击的方式&#xff0c;对软件系统进行全面的安全性评估和测试&#xff0c;以发现潜在的安全漏洞和弱点&#xff0c;是确保软件系统安全性的重要措施。在进行软件安全测试时&#xff0c;我们需要了解测试的内容和方法&#xff0c;以及为什么进行…

《高性能MySQL》——查询性能优化(笔记)

文章目录 六、查询性能优化6.1 查询为什么会慢6.2 慢查询基础&#xff1a;优化数据访问6.2.1 是否向数据库请求了不需要的数据查询不需要的记录多表关联时返回全部列总是取出全部列重复查询相同的数据 6.2.2 MySQL 是否在扫描额外的记录响应时间扫描的行数与返回的行数扫描的行…

项目经理和PMO如何穿越低谷,激活自己与团队——WOOP给你答案

2023年&#xff0c;已经还剩下不到5个月了。因为今年整体大环境不好&#xff0c;很多人会因为遇到各种问题&#xff0c;让自己掉入低谷&#xff0c;也有可能让自己带的团队毫无生气。我期待这篇文章能够给你带来向上的力量&#xff0c;在困境中看到希望与可能性。 相信有很多人…

如何在轻量级RTSP服务支持H.264扩展SEI发送接收自定义数据?

为什么开发轻量级RTSP服务&#xff1f; 开发轻量级RTSP服务的目的是为了解决在某些场景下用户或开发者需要单独部署RTSP或RTMP服务的问题。这种服务的优势主要有以下几点&#xff1a; 便利性&#xff1a;通过轻量级RTSP服务&#xff0c;用户无需配置单独的服务器&#xff0c;…