-
C# 图片与字节数组(byte[])二进制相互转换,获取大小像素扩展名
2020-01-21 09:41:15C# 图片与字节数组(byte[])二进制相互转换,获取大小像素扩展名 https://blog.csdn.net/kongwei521/article/details/6871461 C#+Stream+和+byte[]+之间的转换 ...... -
彩色图像与灰度图像转换的程序设计
2010-10-14 17:36:00简介 数字图像在计算机上以位图(bitmap)的形式存在,位图是一个矩形点阵,...对于黑白图像,每个像素用一个字节数据来表示,而在彩色图像中,每个像素需用三个字节数据来表述。彩色图像可以分解成红(R)、绿(G)、简介
数字图像在计算机上以位图(bitmap)的形式存在,位图是一个矩形点阵,其中每一点称为像素(pixel),像素是数字图像中的基本单位。一幅m×n大小的图像,是由m×n个明暗度不等的像素组成的。数字图像中各个像素所具有的明暗程度由灰度值(gray level)所标识。一般将白色的灰度值定义为255,黑色灰度值定义为0,而由黑到白之间的明暗度均匀地划分为256个等级。对于黑白图像,每个像素用一个字节数据来表示,而在彩色图像中,每个像素需用三个字节数据来表述。彩色图像可以分解成红(R)、绿(G)、蓝(B)三个单色图像,任何一种颜色都可以由这三种颜色混合构成。在图像处理中,彩色图像的处理通常是通过对其三个单色图像分别处理而得到的。
算法
如果要将彩色图像转换为灰度图像,只要将图像中的每个像素取出来,然后取像素的R、G、B颜色分量,利用如下公式计算灰度值:
int gray = r*0.3 + g*0.59 + b*0.11;
然后再令像素的R、G、B分度值都为gray就行了 。
也有的资料提出灰度转换公式如下所示:
int gray = (r+g+b) / 3;
两种方法转换后的灰度图片效果差不多。
代码样例
public void GrayScale(Bitmap image ) { int width = image.Width - 1; int height = image.Height - 1; Color color; for (int i = width; i >= 0;i--) { for (int j = height; j >= 0;j--) { //读取每一个像素 color = image.GetPixel(i,j); //计算灰度值 int gray = (int)(color.R * 0.3 + color.G * 0.59 + color.B * 0.11); //int gray = (color.R + color.G + color.B) / 3; Color colorResult = Color.FromArgb(255,gray,gray,gray); //设置像素为灰度 image.SetPixel(i, j, colorResult); }
} }
原始图片:
灰度图片:
-
opencv 自学
2021-01-24 01:34:242.2 图像与字节 2.3 numpy.arry 访问图像数据 数组类型 2维或者3维 itemset() BGR 三通道 Shape(宽、高、通道数) size 像素大小 datatype 图像数据类型 2.4 视频读写 videocapture videowrite 读取的帧 需要视频...第二章 处理文件、摄像头和图形用户界面
2.1 读写文件 iimread imwrite 静态 像素值——颜色 格式之间可转换
2.2 图像与字节
2.3 numpy.arry 访问图像数据 数组类型 2维或者3维 itemset() BGR 三通道
Shape(宽、高、通道数) size 像素大小 datatype 图像数据类型
2.4 视频读写 videocapture videowrite 读取的帧 需要视频解码器 根据需求选择
Get函数获取帧
2.5 摄像头的帧 videocapture 需要设备引索 deviceindex 可形成视频
get函数不能用 返回值 0
可创建video write
2.6 显示图像 imshow waitkey 获取键盘输入 以及 setmousecallback 鼠标输入
2.7 窗口显示摄像头帧
2.8 Cameo 人脸跟踪和图像处理 应用程序
2.8.1 提取视频流 managers.capturemanager 通道 帧
2.8.2 抽象窗口和键盘 windowmanage
2.8.3 实现 run onkeypress第三章 处理图像
3.1 色彩转换 灰度、BGR、 HSV(Hus Saturation Value)色调、饱和度、黑暗程度
3.2 傅里叶变换 波形变换
3.2.1 高通滤波器 HPF、 核kerne 边缘检测l
3.2.2 低通滤波器 平滑、去噪和模糊化
3.3 创建模块 创建utils.py
3.4 边缘检测 提供了边缘滤波函数 laplacian sonel scharr 非黑 边缘 白色
模糊滤波 blur medianblur guassianblur ksize
核的大小
3.5 用定制内核做卷积 用filter2D 引入内核
3.6 修改应用
3.7 Canny边缘检测
3.8 轮廓检测 不止是物体的形状, 可以是其他的轮廓——人脸
3.9 边界框、最小矩形区域和最小闭圆的轮廓
3.10 凸轮廓与Douglas—Peucker算法
多边形框 轮廓、e与原轮廓的差值、布尔标记(是否闭合)、
3.11 直线和圆检测
3.11.1 直线检测 Houghlines Houghlinesp
3.11.2 圆检测 Houghcircles
3.12 检测其他形状第四章深度估计与分割
4.1 创建模块
分模块 :捕获和处理深度摄像头数据——Cameo.py 与其他分离
4.2 捕获深度摄像头的帧
Depth.py 深度图、点云图、视差图、有效深度掩模
4.5 使用普通摄像头进行深度估计 物体到摄像头的距离
4.6 使用分水岭和Grabcut算法进行物体分割
高斯混合模型第五章人脸检测和识别
定义可跟踪对象类型的数据
5.1 Haar级联概念
特征——是什么
5.2 数据获取
文件夹、XML文件
5.3 opencv识别人脸
5.3.1 静态
创建脚本
5.3.2 视频
摄像头、读取帧、检测、绘制矩形框
5.3.3 人脸识别
1、生成人脸识别数据。
2、人脸识别:三种方法:eigenface、fisherfaces、local binary pattern histongram
3、准备训练数据
4、加载数据并识别人脸
通过置信度评分来丢弃结果第六章目标检测与识别
7.1 目标检测与识别技术——程序
梯度直方图HOG、图像金字塔、滑动窗口
7.1.1 HOG描述符
8个方向:N\NW\W\SW\S\SE\E\NE
位置、尺度。——图像金字塔、滑动窗口
非最大抑制——取舍问题
支持向量机
7.1.2 检测人
7.1.3 创建和训练目标检测器
词袋、计算机视觉中的BOW、K—means聚类
第七章目标跟踪
8.1 检测移动的目标
对比帧之间的差异
8.2 背景分割器;Knn、MOG2、GMG -
前端性能优化小结
2020-06-20 12:34:13过程:将字节转换为字符集 -> 根据w3c规定的token令牌进行词法解析生成结点 -> 根据嵌套规则生成DOM树形结构 2. 构建CSSOM 过程:与HTML类似 3. 渲染树 4. 总步骤 处理HTML标记,生成DOM树 处理CSS标记,...一. 浏览器渲染优化
1. 构建DOM树
过程:将字节转换为字符集 -> 根据w3c规定的token令牌进行词法解析生成结点 -> 根据嵌套规则生成DOM树形结构
2. 构建CSSOM
过程:与HTML类似
3. 渲染树
4. 总步骤
- 处理HTML标记,生成DOM树
- 处理CSS标记,生成CSSOM树
- 将DOM树和CSSOM树融合成渲染树
- 根据生成的渲染树计算确切位置和大小,又叫回流(重排)
- 根据渲染树以及回流结果,得到绝对像素,进行绘制
5. 优化方案
-
语义化标签,如果不是w3c规定的标签,词法解析阶段会消耗更多时间
-
避免深层嵌套,深层嵌套会导致生成DOM树过程进行多重递归,降低性能
-
减少选择器层级,合理使用css预编译器(CSS从右往左解析选择器)
-
尽早将CSS下载到客户端,充分利用HTTP多请求并发机制
- 少量代码放入style,
- 大量代码用link请求(不会阻塞),link放到头部,尽快开始请求,实现在生成DOM树同时请求数据
- 尽量少用@import(阻塞执行)
-
避免JS阻塞加载
- 放到底部或者使用defer、async
- 放到底部或者使用defer、async
-
避免回流和重绘
- 回流:元素尺寸或者位置改变导致重新计算位置和大小重新布局
- 重绘:样式改变(位置、大小不变)导致重新绘制
- 回流一定会重绘,重绘不一定回流
避免回流的方法:
- 使用vue/react数据驱动视图的模式开发
- 分离读写操作:浏览器有批量渲染机制,如果连续同类型样式修改,浏览器会将其统一加载到队列中,然后进行统一渲染,如果读写穿插进行就会中断该操作,因此多次渲染
- 样式集中改变,
box.className="active"
- 缓存布局信息,
let curleft=box.offsetLeft
- 使用文档碎片修改元素
- 动画效果应用到脱离文档流的元素
- CSS3硬件加速,
transform/opacity/filters...
二. DNS域名解析优化
每次DNS解析时间预计20~200ms
DNS解析顺序:
- 浏览器缓存
- 操作系统缓存
- 路由器缓存
- 本机hosts
- 运营商DNS服务器缓存
- 根域名服务器 -> 顶级域名服务器 -> 权威域名服务器
优化:
设置link标签执行DNS预获取,在生成DOM树的同时进行预解析并将结果写入缓存,提高响应速度
<meta http-equiv="x-dns-prefetch-control" content="on"> <link ref="dns-prefetch" href="//static.360buyimg.com"/>
三. 网络优化
减少http请求次数和资源大小
- 资源合并压缩(webpack打包)
- 字体图标和小图片base64编码
- gzip压缩
- 图片懒加载
- 引入外部cdn
应用缓存
缓存位置:
- Service Worker:浏览器独立线程缓存
- Memory Cache:内存缓存
- Disk Cache:硬盘缓存
- Push Cache:推送缓存(HTTP2新增)
各种操作触发的缓存处理:
- 输入地址打开网页,查询disk Cache,若不存在则发起请求
- F5刷新,先Memory Cache,后disk Cache
- Ctrl+F5强制刷新,请求头设为(Cache-control:no-catche)进行请求
传送门:HTTP缓存
-
易语言 茶凉专用模块
2010-05-04 12:26:36参数 状态, 整数型, 可空, 可空:按键(按下+放开) 1 #按键_ 3 #按下_ 4 #放开_ 如果状态大于等于5则为按下与放开之间的延时,可解决某些屏蔽 .参数 功能键方式, 逻辑型, 可空, 默认为普通键, 真:功能键方式模拟,如ctrl... -
opencv学习资料
2013-03-09 20:04:483.3.2 (2) 矩形框大小(以像素为精度): 3.3.3 (3) 矩形框的偏置和大小: 4 四、图像处理 4.1 1、图像的内存分配与释放 4.1.1 (1) 分配内存给一幅新图像: 4.1.2 (2) 释放图像: 4.1.3 (3) 复制图像: ... -
我在网上找了个bmp转YUV的程序进行修改,但读不出数据,不知什么问题,有谁懂的请帮忙看下,谢谢了
2018-04-28 03:46:43//BMP与RGB的转换,得到RGB数据 if (BMP2RGB(file_header, info_header, bmpFile, rgbBuf)) { printf("BMP2RGB error\n"); exit(1); } //RGB与YUV的转换,得到YUV数据 // int flip = 0; /*读取到的图像数据... -
EasyAndroid 包含各种工具类的集合,会不定期更新,欢迎贡献code 使用方法: 2.0.0以后,放弃了support库,请使用AndroidX ...resource2Bitmap : 根据资源ID获取一个指定大小的bitmap getBitmapFromFile ...
-
delphi 开发经验技巧宝典源码
2010-08-12 16:47:235.1 ASCII码与编码转换 100 0150 如何获得汉字的区位码 100 0151 通过区位码获取汉字 100 0152 根据ASCII码获得字母 101 0153 获得字母的ASCII码 101 5.2 字符中的转换 101 0154 如何将数字转换成字符... -
关键渲染路径
2021-01-08 14:32:44JavaScript转换为屏幕上所呈现的实际像素,这期间所经历的一系列步骤,叫做关键渲染路径(Critical Rendering Path)。 <p><img alt="关键渲染路径" src=... -
ASP.NET开发实战1200例(第1卷).part2
2016-06-11 20:12:37实例008 限制上传文件的大小与时间 20 实例009 连接默认错误页 21 实例010 配置验证级别 22 第2章 C#语言基础 25 2.1 实用的数据类型 26 实例011 仓库与盒子的学问——数据类型与变量 26 实例012 数据类型之值类型的... -
ASP.NET开发实战1200例(第1卷).part1
2016-06-11 20:07:19实例008 限制上传文件的大小与时间 20 实例009 连接默认错误页 21 实例010 配置验证级别 22 第2章 C#语言基础 25 2.1 实用的数据类型 26 实例011 仓库与盒子的学问——数据类型与变量 26 实例012 数据类型之值类型的... -
ASP.NET开发实战1200例(第1卷).part3
2016-06-11 20:19:00实例008 限制上传文件的大小与时间 20 实例009 连接默认错误页 21 实例010 配置验证级别 22 第2章 C#语言基础 25 2.1 实用的数据类型 26 实例011 仓库与盒子的学问——数据类型与变量 26 实例012 数据类型之值类型的... -
Windows 系统错误代码简单分析
2010-04-14 11:21:570031 与系统连接的设备不能正常运转。 0032 其他进程正使用该文件,因此现在无法访问。 0033 另一进程已锁定该文件的某一部分,因此现在无法访问。 0034 驱动器中的软盘不正确。请将 %2 (卷标序列号:... -
C#全能速查宝典
2014-04-26 16:16:27《C#全能速查宝典》共分为8章,分别介绍了C#语言基础、Windows窗体及常用控件、Windows高级控件、控件公共属性、方法及事件、数据库开发、文件、数据流与注册表、GDI+绘图技术和C#高级编程,共包含562个C#编程中常用... -
郁金香VC++初学者基础入门100讲 精华视频教程
2018-11-13 14:10:53[size=15.5556px]变量占用空间大小(字节) [size=15.5556px]变量所表示数的范围 [size=15.5556px]C、sizeof操作符 [size=15.5556px]D、整数四则运算(+,-,*,/)及赋值(=) [size=15.5556px]1.2浮点型(实型)float,... -
C#编程经验技巧宝典
2008-06-01 08:59:3372 <br>0102 将字符串首字母转换大写 72 <br>0103 如何进行字节数组和字符串的相互转换 72 <br>0104 如何把一个按空格分割的字符串存储在一个ArrayList数组中 73 <br>4.2 获取字符串信息 73 ... -
看到网上有个方案说:主项目负责加载组件,由于主项目和组件之间是隔离的,那么主项目如何调用组件ApplicationLike的生命周期方法呢,目前采用的是基于编译期字节码插入的方式,扫描所有的ApplicationLike类(其有一...
-
新版Android开发教程.rar
2010-12-14 15:49:11310 万像素摄像头。 流媒体 支持视频格式: H.264 、流媒体、 3GPP 、 MPEG4 和 Codec 3GP ;支持音频格式: MP3 、 AAC 、 AAC+ 、 W MA 、 MPEG4 、 WAV 、 MIDI 、 REAL 、 AUDIO 和 OGG ;支持墙纸格式: JPG ... -
C开发金典随书源码:含数据结构 数值计算分析 图形图像处理 目录和文件操作 系统调用方面的范例
2013-10-25 13:12:12范例1-27 进制转换问题 61 ∷相关函数:MultiBaseOutput函数 1.2.5 顺序队列操作 64 范例1-28 顺序队列操作 64 ∷相关函数:push函数 pop函数 1.2.6 循环队列 66 范例1-29 循环队列 66 ∷相关函数:EnQueue... -
C语言通用范例开发金典.part2.rar
2012-08-31 14:18:18范例1-27 进制转换问题 61 ∷相关函数:MultiBaseOutput函数 1.2.5 顺序队列操作 64 范例1-28 顺序队列操作 64 ∷相关函数:push函数 pop函数 1.2.6 循环队列 66 范例1-29 循环队列 66 ∷相关函数:EnQueue... -
C 开发金典
2013-06-20 16:20:03范例1-27 进制转换问题 61 ∷相关函数:MultiBaseOutput函数 1.2.5 顺序队列操作 64 范例1-28 顺序队列操作 64 ∷相关函数:push函数 pop函数 1.2.6 循环队列 66 范例1-29 循环队列 66 ∷相关函数:EnQueue... -
嵌入式红绿灯控制系统
2010-12-25 21:29:18直流驱动,超低功耗(单管0.03瓦-1 瓦)电光功率转换接近100%,相同照明效果比传统光源节能80%以上。 LED 长寿命:LED 光源被称为长寿灯。固体冷光源,环氧树脂封装,灯体内也没有松动的部分,不存在灯丝发光易烧...
-
MySQL 管理利器 mysql-utilities
-
基于透射相位梯度超表面的宽带频率扫描欺骗表面等离子极化平面天线
-
画图软件 draw.io
-
MySQL 事务和锁
-
EventBus源码解析下(较详细)
-
资源:只是一堆资源文件正在传输到另一台PC-源码
-
蓝桥杯单片机历届模拟题.zip
-
项目管理工具与方法
-
小粥学Mybatis(14)之多表操作----一对一/一对多
-
用于减少RCS的二维编码相位梯度超表面
-
面部识别脑-源码
-
MySQL 数据库权限管理(用户高级管理和精确访问控制)
-
MySQL 查询与高级查询(多表、嵌套和正则表达式)
-
阿里大牛手写设计模式解析笔记,困扰多年的设计模式终于得到解决
-
千元喜茶订单配送费仅5元为乌龙事件,外卖小哥称自己看错了
-
Java对接微信公众号模板消息推送,实现消息推送功能
-
MaxScale 实现 MySQL 读写分离与负载均衡
-
MySQL 高可用工具 heartbeat 实战部署详解
-
curl的时候报错: (56) Received HTTP code 503 from proxy after CONNECT解决
-
Stuuche.github.io-源码