在图像处理与计算机图形学中,随机数随机颜色的生成常用于增强图像的多样性、可视化多个目标区域、模拟自然现象以及生成测试数据等任务。通过随机化元素的颜色、位置或形状,可以使程序在动态展示、调试输出、以及数据增强等方面更加灵活和丰富。

例如,在目标检测或图像分割结果中,不同的检测区域或类别往往使用不同的颜色进行区分,这些颜色通常通过随机方式生成。利用 OpenCV 配合 C++ 的随机数生成器,可以方便地创建随机坐标、随机颜色(RGB)值等,为图像绘制提供更高的自由度与视觉效果。

 现在来编写程序进行实验:同样是在我们之前所创建的类中定义一个方法的Demo

class Demo{
public:void colorspace_Demo(Mat &image);void Mat_creat(Mat &image);void pixel_RW_Demo(Mat &image);void operator_Demo(Mat &image);void Tracking_Demo(Mat &image);void Color_Demo(Mat &image);void bitwise_Demo(Mat &image);void channel_Demo(Mat &image);void inrange_Demo(Mat &image);void pixel_statistics_Demo(Mat &image);void Shapes_Demo(Mat &image);void polygon_drawing_Demo();void random_Demo();};

 紧接着我们回到cpp文件中定义这个函数;

void Demo::random_Demo()
{Mat background = Mat::zeros(Size(512,512),CV_8UC3);RNG rng(12345);int w = background.cols;int h = background.rows;while (1){int key = waitKey(10);if (key == 27)break;if (key == ' '){ int x1 = rng.uniform(0,w);int y1 = rng.uniform(0,h);int x2 = rng.uniform(0,w);int y2 = rng.uniform(0,h);line(background,Point(x1,y1),Point(x2,y2),Scalar(rng.uniform(0,255),rng.uniform(0,255),rng.uniform(0,255)),4,LINE_4);imshow("i",background);}}
}

这段代码是是在按下空格键时随机生成两点并绘制一条随机颜色的线段,不断叠加到同一张画布上,直到按下 Esc 键退出。

RNG rng(12345);

创建一个随机数生成器 rng,种子值为 12345,用于生成随机数。

使用 rng.uniform(a, b) 随机生成 [a, b) 区间内的整数,表示线段的两个端点 (x1, y1)(x2, y2)Scalar(B, G, R) 表示线条颜色,这里通过 rng.uniform(0,255) 为每个通道随机生成值,实现随机颜色。

运行即可得到:

我们修改代码让其自动生成不再空格控制: 

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

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

相关文章

机器学习、深度学习与数据挖掘:三大技术领域的深度解析

基本概念与历史沿革数据挖掘起源于20世纪90年代,是数据库技术、统计学和机器学习交叉融合的产物。它经历了从简单查询到复杂知识发现的演变过程,早期阶段主要关注数据存储和检索,随着IBM、微软等公司的推动,逐渐形成了完整的知识发…

MoR vs MoE架构对比:更少参数、更快推理的大模型新选择

Google DeepMind 近期发布了关于递归混合(Mixture of Recursion)架构的研究论文,这一新型 Transformers 架构变体在学术界和工业界引起了广泛关注。该架构通过创新的设计理念,能够在保持模型性能的前提下显著降低推理延迟和模型规…

uniapp开发实现【中间放大两边缩小的轮播图】

一、效果展示 二、代码实现 <template><view><!-- 轮播图 --><view class=<

机器学习没有最好的模型,只有最合适的选择(模型选择)

机器学习领域存在"没有免费午餐"定理&#xff0c;没有任何一种模型在所有问题上都表现最优。不同模型有各自的优势和适用场景。同一数据集上&#xff0c;不同模型的预测性能可能有巨大差异。例如&#xff0c;线性关系明显的数据上线性模型可能表现优异&#xff0c;而…

关于人工智能AI>ML>DL>transformer及NLP的关系

一、AI、ML、DL、NLP的极简概念1、人工智能&#xff08;AI&#xff09;有不同的定义&#xff0c;但其中一个定义或多或少已成为共识&#xff0c;即AI是一个计算机系统&#xff0c;它能够执行通常需要人类智能才能完成的任务。根据这个定义&#xff0c;许多算法可以归纳为AI算法…

小迪23-28~31-js简单回顾

前端-js开发 课堂完结后欲复习巩固也方便后续-重游-故写此篇 从实现功能过渡到涉及的相关知识点 知识点 1、 JS 是前端语言&#xff0c;是可以被浏览器“看到”的&#xff0c;当然也可以被修改啊&#xff0c;被浏览器禁用网页的 JS 功能啊之类的。所以一般都是前后端分离开发&…

vue项目预览pdf隐藏工具栏和侧边栏

1.在预览PDF时&#xff0c;PDF查看器通常会显示工具栏、侧边栏等控件。如果想隐藏这些控件&#xff0c;可以通过在PDF文件的URL中添加参数来实现。可以使用#toolbar0和#navpanes0等参数来隐藏工具栏和侧边栏。解释&#xff1a; #toolbar0&#xff1a;隐藏工具栏。#navpanes0&am…

ERP、CRM、OA整合工具哪家好?2025年最新推荐

当前&#xff0c;大多数中大型企业已部署了ERP&#xff08;企业资源计划&#xff09;、CRM&#xff08;客户关系管理&#xff09;、OA&#xff08;办公自动化&#xff09;等核心业务系统。这些系统在各自职能领域内发挥着关键作用&#xff1a;ERP管理财务、供应链与生产&#x…

设计模式:命令模式 Command

目录前言问题解决方案结构代码前言 命令是一种行为设计模式&#xff0c;它可将请求转换为一个包含与请求相关的所有信息的独立对象。该转换让你能根据不同的请求将方法参数化、延迟请求执行或将其放入队列中&#xff0c;且能实现可撤销操作。 问题 假如你正在开发一款新的文字…

4-verilog简单状态机

verilog简单状态机 1. always (posedge clk or negedge rst_n) beginif (!rst_n)cnt_1ms < 20b0;else if (cnt_1ms_en)cnt_1ms < cnt_1ms 1b1;elsecnt_1ms < 20d0; endalways (posedge clk or negedge rst_n) beginif(!rst_n)cur_state < s1_power_init;else i…

ICCV2025 | 对抗样本智能安全方向论文汇总 | 持续更新中~

汇总结果来源&#xff1a;ICCV 2025 Accepted Papers 若文中出现的 论文链接 和 GitHub链接 点不开&#xff0c;则说明还未公布&#xff0c;在公布后笔者会及时添加. 若笔者未及时添加&#xff0c;欢迎读者告知. 文章根据题目关键词搜索&#xff0c;可能会有遗漏. 若笔者出现…

SPI通信中CS片选的两种实现方案:硬件片选与软件片选

一. 简介本文简单熟悉一下SPI通信中的片选信号&#xff08;CS&#xff09;的两种实现方案&#xff1a;硬件片选和软件片选&#xff0c;以及两种方案的区别&#xff0c;如何选择。在SPI&#xff08;Serial Peripheral Interface&#xff09;通信中&#xff0c;片选信号&#xff…

IBM 报告称除美国外,全球数据泄露成本下降

IBM 发布的一份针对 113,620 起数据泄露事件的年度全球分析报告发现&#xff0c;平均数据泄露成本同比下降了 9%&#xff0c;这主要归功于更快的发现和遏制速度。 该报告与波耐蒙研究所 (Ponemon Institute) 合作完成&#xff0c;发现全球平均数据泄露成本从 2024 年的 488 万美…

Docker Compose 部署 Dify + Ollama 全栈指南:从裸奔到安全可观测的 AI 应用实战

&#x1f4cc; 摘要 本文以中国开发者视角出发&#xff0c;手把手教你用 Docker Compose 在本地或轻量云主机上部署 Dify Ollama 组合栈&#xff0c;实现“安全、可观测、可扩展”的私有化 AI 应用平台。全文约 8 000 字&#xff0c;包含&#xff1a; 架构图、流程图、甘特图…

「源力觉醒 创作者计划」_全方面实测文心ERNIE-4.5-VL-28B-A3B开源大模型

「源力觉醒 创作者计划」_全方面实测文心ERNIE-4.5-VL-28B-A3B开源大模型1. 文心大模型4.5-28B概述2. 部署ERNIE-4.5-VL-28B-A3B文心大模型2.1. 创建GPU云主机2.2. ERNIE-4.5-VL-28B-A3B部署2.3. 创建大模型API交互接口3. 文心大模型4.5-28B多方面性能评测3.1. 语言理解方面3.2…

数据库学习------数据库事务的特性

在数据库操作中&#xff0c;事务是保证数据一致性和完整性的核心机制。无论是简单的单表更新&#xff0c;还是复杂的多表关联操作&#xff0c;事务都扮演着至关重要的角色。那么什么是数据库事务&#xff1f;数据库事务是一个不可分割的操作序列&#xff0c;它包含一个或多个数…

18-C语言:第19天笔记

C语言&#xff1a;第19天笔记 内容提要 构造类型 结构体共用体/联合体构造类型 数据类型 基本类型/基础类型/简单类型 整型 短整型&#xff1a;short – 2字节基本整型&#xff1a;int – 4字节长整型&#xff1a;long – 32位系统4字节/ 64位系统8字节长长整型&…

centos下安装anaconda

下载 anaconda 安装包 wget https://repo.anaconda.com/archive/Anaconda3-2022.05-Linux-x86_64.sh 2. 授权 chmod x Anaconda3-2022.05-Linux-x86_64.sh 3. 安装 ./Anaconda3-2022.05-Linux-x86_64.sh 此时显示Anaconda的信息&#xff0c;并且会出现More&#xff0c;继续…

MySQL(172)如何进行MySQL的全局变量设置?

MySQL的全局变量是影响整个服务器设置和行为的参数。可以在服务器启动时通过配置文件设置这些变量&#xff0c;也可以在服务器运行时通过SQL命令动态调整。以下是关于如何设置和管理MySQL全局变量的详细说明和示例代码。 一、通过配置文件设置全局变量 在MySQL服务器启动时&…

【最后203篇系列】030 强化学习探索

前言 我发现在csdn写完一篇文章越来越难了&#xff0c;有n篇写了一半没往下写。原来我觉得补完203篇&#xff0c;凑到一千篇是个很简单的事&#xff0c;没想到还挺难的。 我回想了一下&#xff0c;过去一年大模型领域继续发生这很剧烈的变化&#xff0c;这是一种新的模式 &…