数字图像处理(一)

  • 一、什么是图像:图像就是多维数组
    • 图像的存储
    • 每一个格子有自己的颜色、深浅
      • 如何访问图像:
        • 1.对于RGB图像,共有R/G/B三个通道,通过代码来看。图像有单通道和多通道之分,访问时只需要以多维数组的形式访问即可。
        • 2.如果R/G/B都挤在一个格子里面
  • 二、分析方向占地盘
    • 空间域
      • 空间域针对像素点的图像处理主要包括:
        • 1.灰度变换
        • 2.空间域滤波
          • 2.1 空间域滤波:用不同的核kernel,也就是不同的 磨石,去挨个擦一遍每个像素点,每个像素点按照一定算法来跟磨石里面的数据求平均,然后把相当于用磨石把像素点的值改变了,这个过程也就是卷积。
    • 变换域:
  • 附加发散知识:LED赛道中大屏里面的那些事:
    • 1.大屏中有很多箱体、很多模块/灯板,灯板上有很多LED灯,那这些灯如何亮,这里面就牵扯到很多知识点:
      • 1.1 静态扫和非静态扫:
      • 1.2 灯珠的亮度咋来的,通道打开时间 * 电流,波形上面就是矩形的面积,比如一个上升沿和一个下降沿,那么,包起来的矩形,高代表电流,宽代表通道打开时间。

一、什么是图像:图像就是多维数组

你好! 从LED冬奥会、奥运会及春晚等等大屏,到手机小屏,快来挖一挖里面都有什么。

图像的存储

比如,如下存储代码。

// 图像在内存中的实际存储(一维数组)
uint8_t image_data[16] = {R0,G0,B0, R1,G1,B1, R2,G2,B2, R3,G3,B3,  // 第0行R4,G4,B4, R5,G5,B5, ...                  // 第1行// ... 后续行
};

…ISP…:

  1. 通过相机等成像系统等拍摄,数字化之后的图像就是二维/多维的矩阵/数组,也就是二维数据。图像的存储是以矩阵的形式存储,矩阵中的每一个格子代表一个像素。

    • 如果想了解一些成像系统、图像、人眼、颜色等等的小知识,快去看看视频吧 :
      • GodWarrior、抖音号:59412983611
      • B站:宇宙第一AIYWM
        • 认准一个头像,保你不迷路:
        • 在这里插入图片描述

每一个格子有自己的颜色、深浅

如何访问图像:

1.对于RGB图像,共有R/G/B三个通道,通过代码来看。图像有单通道和多通道之分,访问时只需要以多维数组的形式访问即可。
//像素点有:宽Width、高 height、通道Channel
char image[nWidth][nHeight][nChannel];for(int i = 0; i < nHeight; i++)for(int j = 0; j < nWidth; j++)for(k = 0; k < nChannel; k++){cout << image[j][i][k]}//c++版本
#include <iostream>const int nWidth = 10;   // 示例宽度
const int nHeight = 10;  // 示例高度
const int nChannel = 3;  // 示例通道数char image[nWidth][nHeight][nChannel];int main() {// 假设 image 数组已经被填充数据for(int i = 0; i < nHeight; i++) {for(int j = 0; j < nWidth; j++) {for(int k = 0; k < nChannel; k++) {std::cout << image[j][i][k];}}}return 0;
}//Goland
package mainimport ("fmt"
)const (nWidth   = 10 // 示例宽度nHeight  = 10 // 示例高度nChannel = 3  // 示例通道数
)func main() {var image [nWidth][nHeight][nChannel]byte// 假设 image 数组已经被填充数据for i := 0; i < nHeight; i++ {for j := 0; j < nWidth; j++ {for k := 0; k < nChannel; k++ {fmt.Print(image[j][i][k])}}}
}
2.如果R/G/B都挤在一个格子里面
for(int i = 0; i < nHeight; i++)for(int j = 0; j < nWidth; j+= 3){cout << image[j][i]; //Rcout << image[j + 1][i]; // Gcout << image[j + 2][i]; //B}

二、分析方向占地盘

既然图像具体化成为了数组和矩阵,那么下来就有了很多的针对性分析,比如

空间域

其实上面我们按照像素点去访问图像的话,其实就是在空间域访问图像呢,所以呢,空间域其实指的就是图像中的每个像素单元。起这个名字其实就是为了和其他的,比如下面的域区分开而已;

空间域针对像素点的图像处理主要包括:

图像是二维数据,正如上文所说,图像的存储是以矩阵的形式存储,矩阵中的每一个格子代表一个像素,二维数据传输的时候是逐行传输的,当传输图像数据时,系统会按照行优先顺序将二维矩阵转换为一维数据流:

1.灰度变换
2.空间域滤波

信号处理上,你对图像像素数据不停的一行一行的去处理,让他亮,并且你不能说我这个图像有三行三列,我就亮三次就行了,不行的,抛开亮不同的图像不说,你随着时间推移,你需要不停的亮起像素点,才能保证呈现给客户完整的视频或者图像画面。所以,此时就是一个连续的波形,但有时候电压或者电流太小或者太大会导致功耗、耦合、亮度一致性或者均匀性出现问题,所以需要按照预期过滤掉波形中的某些成分,也就是人们常说的滤波。降噪、平滑等就是在滤波。

2.1 空间域滤波:用不同的核kernel,也就是不同的 磨石,去挨个擦一遍每个像素点,每个像素点按照一定算法来跟磨石里面的数据求平均,然后把相当于用磨石把像素点的值改变了,这个过程也就是卷积。

变换域:

你图像反正是一堆装在格子里面的像素点,有自己的属性,Width、Height、Channel,那么有玩家就会想到,将图像转换到其他的域,比如频率域,在变换域做完处理之后再通过反变换方式转换回来。

附加发散知识:LED赛道中大屏里面的那些事:

1.大屏中有很多箱体、很多模块/灯板,灯板上有很多LED灯,那这些灯如何亮,这里面就牵扯到很多知识点:

1.1 静态扫和非静态扫:

1.2 灯珠的亮度咋来的,通道打开时间 * 电流,波形上面就是矩形的面积,比如一个上升沿和一个下降沿,那么,包起来的矩形,高代表电流,宽代表通道打开时间。

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

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

相关文章

关于汉语和英语哪个更先进、历史更久的争论

引言&#xff1a;热议背后的思考​ ​ 在全球化浪潮的推动下&#xff0c;英语作为国际通用语言&#xff0c;在世界范围内广泛传播&#xff0c;其在国际商务、科技交流、学术研究等领域占据着重要地位。而汉语&#xff0c;作为世界上使用人口最多的语言之一&#xff0c;承载着…

在不联网的情况下,从可以联网的计算机上拷贝过来的程序报错:nu1301 无法加载源,https://api.nuget.org/v3/index.json

解决方法&#xff1a; 在联网的计算机上&#xff0c;找到nuget文件&#xff0c;拷贝到&#xff0c;不能联网的计算机的相应位置 设置加载这个nuget包&#xff0c;把nuget.org取消。 注意如果出现好多包都不能加载&#xff0c;可能是框架版本的问题&#xff0c;修改框架版本&am…

TCP 状态流程及原理详解:从连接建立到性能优化

一、TCP 协议概述与核心价值 TCP&#xff08;Transmission Control Protocol&#xff0c;传输控制协议&#xff09;是互联网协议栈中的核心协议之一&#xff0c;为网络通信提供可靠的、面向连接的数据传输服务。在当今复杂多变的网络环境中&#xff0c;深入理解 TCP 协议的状态…

【STM32 学习笔记】PWR电源控制

在电子设备中&#xff0c;待机&#xff08;Standby&#xff09;和睡眠&#xff08;Sleep&#xff09;是两种不同的省电模式。 1. 待机模式&#xff08;Standby Mode&#xff09;&#xff1a;在待机模式下&#xff0c;设备仍然保持一定程度的活动&#xff0c;但大部分功能处于暂…

TCP 重传机制详解:原理、变体与故障排查应用

一、TCP 重传机制基础原理 1.1 可靠传输的核心保障 TCP&#xff08;Transmission Control Protocol&#xff0c;传输控制协议&#xff09;作为互联网中最常用的传输层协议&#xff0c;其核心特性之一是提供可靠的数据传输服务。在不可靠的网络环境中&#xff0c;数据包可能会…

Linux-HTTP服务和APACHE-学习笔记

序 欠10年前自己的一份笔记&#xff0c;献给今后的自己。 Internet Internet与中国 Internet最早来源于美国国防部高级研究计划局ARPA建立的ARPANet&#xff0c;1969年投入运行。1983年&#xff0c;ARPAnet分裂为两部分&#xff1a;ARPAnet和纯军事用的MILNET。当年1月&…

GitHub 趋势日报 (2025年06月26日)

&#x1f4ca; 由 TrendForge 系统生成 | &#x1f310; https://trendforge.devlive.org/ &#x1f310; 本日报中的项目描述已自动翻译为中文 &#x1f4c8; 今日获星趋势图 今日获星趋势图 716 free-for-dev 677 Self-Hosting-Guide 618 Best-websites-a-programmer-shoul…

利用TACCO将单细胞注释transfer至空间组

目录 环境导入 关键函数定义 运行前设定 数据准备 正式运行与保存 可视化与概率调整 偶然发现的一个好用的transfer方法&#xff0c;计算效率相当高&#xff0c;解了我的燃眉之急hh 原方法来自由以色列耶路撒冷希伯来大学的Mor Nitzan、美国麻省理工学院-哈佛大学博德研…

在反向代理环境下精准获取客户端真实 IP 的最佳实践

目录 1 背景 2 常见误区 3 X-Forwarded-For 解析规则 4 real_ip() 函数 —— 一行代码落地 5 与框架方法的协同 6 Nginx 端最小配置 7 生产落地 checklist 8 常见 Q&A 9 总结 在反向代理环境下精准获取客户端真实 IP 的最佳实践 — 基于自定义 real_ip() 函数的完…

华为云Flexus+DeepSeek征文|基于Dify构建抓取金融新闻并发送邮箱工作流

华为云FlexusDeepSeek征文&#xff5c;基于Dify构建抓取金融新闻并发送邮箱工作流 一、构建抓取金融新闻并发送邮箱工作流前言二、构建抓取金融新闻并发送邮箱工作流环境2.1 基于FlexusX实例的Dify平台2.2 基于MaaS的模型API商用服务 三、构建抓取金融新闻并发送邮箱工作流实战…

疲劳检测与行为分析:工厂智能化实践

视觉分析算法赋能工厂疲劳与安全管理 一、背景与需求 在制造业中&#xff0c;疲劳作业是导致安全事故和效率下降的核心因素之一。传统人工巡检存在覆盖面不足、响应滞后等问题&#xff0c;而基于视觉分析的智能监控系统通过多算法协同&#xff0c;可实现全天候、高精度的疲劳…

医院信息化建设的要点

随着医疗技术的不断发展和患者需求的日益多样化&#xff0c;医院信息化建设已经成为提高医疗质量和效率的必要手段。医院信息化建设是指通过信息技术手段对医院日常运营、管理和服务进行数字化、智能化和网络化的改造&#xff0c;以提高医疗服务水平和管理效率。在实施医院信息…

Sql Server常用命令整理篇:根据某个字段删除重复数据

通过比较同一表中的两行数据&#xff0c;删除那些在Text_data或Title字段上有重复值的行&#xff0c;同时保留id较小的行&#xff1a; DELETE t1 FROM data_zq t1 JOIN data_zq t2 WHERE t1.id > t2.id AND (t1.Text_data t2.Text_data OR t1.Title t2.Title);注意事项 备…

Spring AI 入门到实战:我如何用它让系统具备“理解能力”

我向来对“整合大模型进 Java 应用”这件事持谨慎态度。在 GPT 火了之后&#xff0c;我们团队最初是用 HTTP 手动调 OpenAI 接口&#xff0c;把它当成一个 JSON API 用。但随着业务交互变复杂&#xff0c;我意识到&#xff1a;我们需要的是一个语义系统&#xff0c;而不是一个封…

C++链表的虚拟头节点

C链表虚拟头节点&#xff08;Dummy Head&#xff09; 虚拟头节点是链表操作中极为实用的设计技巧&#xff0c;它通过在链表真实头部前添加一个特殊节点&#xff0c;有效简化边界条件处理。 一、虚拟头节点的本质与核心作用 1. 定义 虚拟头节点是一个不存储真实数据的特殊节…

使用vllm部署 Nanonets-OCR-s

使用vLLM部署Nanonets-OCR-s模型的完整指南 Nanonets-OCR-s作为基于Qwen2.5-VL-3B的多模态OCR模型,结合vLLM的高效推理引擎可显著提升部署性能。 一、环境准备与依赖安装 1. 安装vLLM与多模态依赖 # 安装vLLM(含CUDA加速) pip install vllm==0.3.21 # 建议使用稳定版本…

大数据在UI前端的应用深化研究:用户行为模式的挖掘与分析

hello宝子们...我们是艾斯视觉擅长ui设计、前端开发、数字孪生、大数据、三维建模、三维动画10年经验!希望我的分享能帮助到您!如需帮助可以评论关注私信我们一起探讨!致敬感谢感恩! 在数字化用户体验竞争白热化的时代&#xff0c;用户行为数据已成为产品迭代的核心资产。据 Ad…

解决“Belkin USB-C LAN”有一个自分配的IP地址,将无法接入互联网。

MacBookPro使用belkin转换器连接网线&#xff0c;网络不能正常连通&#xff0c;已确定网线、交换机均正常&#xff0c;可以按照如下操作尝试。我自己的情况是通过下面的方式成功解决。如有其他情况后续继续补充。 1. 打开“设置”-“网络”&#xff0c;点击名字为“Belkin USB…

Python 爬虫初学者教程

一、爬虫基础概念 什么是爬虫&#xff1f; 爬虫是模拟浏览器行为&#xff0c;自动获取网页数据的程序&#xff0c;常用于数据采集、信息监控等场景。 爬虫的基本流程&#xff1a; 1. 发送请求获取网页内容 2. 解析内容提取数据 3. 存储数据 二、环境准备 1. 安装 Python&…

windows下 tomcat的安装部署

Tomcat是一个免费的开放源代码的Web 应用服务器&#xff0c;属于轻量级应用服务器&#xff0c;在中小型系统和并发访问用户不是很多的场合下被普遍使用&#xff0c;是开发和调试JSP程序的首选。 本文将详细介绍在Windows环境下搭建Tomcat服务器&#xff0c;来搭建小型应用。 要…