精华内容
下载资源
问答
  • C# 图片与字节数组(byte[])二进制相互转换,获取大小像素扩展名 https://blog.csdn.net/kongwei521/article/details/6871461 C#+Stream+和+byte[]+之间的转换 ......
    展开全文
  • 简介 数字图像在计算机上以位图(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:24
    2.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
    • 避免回流和重绘

      • 回流:元素尺寸或者位置改变导致重新计算位置和大小重新布局
      • 重绘:样式改变(位置、大小不变)导致重新绘制
      • 回流一定会重绘,重绘不一定回流

    避免回流的方法:

    • 使用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:48
    3.3.2 (2) 矩形框大小(以像素为精度): 3.3.3 (3) 矩形框的偏置和大小: 4 四、图像处理 4.1 1、图像的内存分配释放 4.1.1 (1) 分配内存给一幅新图像: 4.1.2 (2) 释放图像: 4.1.3 (3) 复制图像: ...
  • //BMPRGB的转换,得到RGB数据 if (BMP2RGB(file_header, info_header, bmpFile, rgbBuf)) { printf("BMP2RGB error\n"); exit(1); } //RGBYUV的转换,得到YUV数据 // int flip = 0; /*读取到的图像数据...
  • EasyAndroid 包含各种工具类的集合,会不定期更新,欢迎贡献code 使用方法: 2.0.0以后,放弃了support库,请使用AndroidX ...resource2Bitmap : 根据资源ID获取一个指定大小的bitmap getBitmapFromFile ...
  • delphi 开发经验技巧宝典源码

    热门讨论 2010-08-12 16:47:23
    5.1 ASCII码编码转换 100 0150 如何获得汉字的区位码 100 0151 通过区位码获取汉字 100 0152 根据ASCII码获得字母 101 0153 获得字母的ASCII码 101 5.2 字符中的转换 101 0154 如何将数字转换成字符...
  • 关键渲染路径

    2021-01-08 14:32:44
    JavaScript转换为屏幕上所呈现的实际像素,这期间所经历的一系列步骤,叫做关键渲染路径(Critical Rendering Path)。 <p><img alt="关键渲染路径" src=...
  • 实例008 限制上传文件的大小与时间 20 实例009 连接默认错误页 21 实例010 配置验证级别 22 第2章 C#语言基础 25 2.1 实用的数据类型 26 实例011 仓库盒子的学问——数据类型变量 26 实例012 数据类型之值类型的...
  • 实例008 限制上传文件的大小与时间 20 实例009 连接默认错误页 21 实例010 配置验证级别 22 第2章 C#语言基础 25 2.1 实用的数据类型 26 实例011 仓库盒子的学问——数据类型变量 26 实例012 数据类型之值类型的...
  • 实例008 限制上传文件的大小与时间 20 实例009 连接默认错误页 21 实例010 配置验证级别 22 第2章 C#语言基础 25 2.1 实用的数据类型 26 实例011 仓库盒子的学问——数据类型变量 26 实例012 数据类型之值类型的...
  •  0031 系统连接的设备不能正常运转。  0032 其他进程正使用该文件,因此现在无法访问。  0033 另一进程已锁定该文件的某一部分,因此现在无法访问。  0034 驱动器中的软盘不正确。请将 %2 (卷标序列号:...
  • C#全能速查宝典

    热门讨论 2014-04-26 16:16:27
    《C#全能速查宝典》共分为8章,分别介绍了C#语言基础、Windows窗体及常用控件、Windows高级控件、控件公共属性、方法及事件、数据库开发、文件、数据流注册表、GDI+绘图技术和C#高级编程,共包含562个C#编程中常用...
  • [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:33
    72 <br>0102 将字符串首字母转换大写 72 <br>0103 如何进行字节数组和字符串的相互转换 72 <br>0104 如何把一个按空格分割的字符串存储在一个ArrayList数组中 73 <br>4.2 获取字符串信息 73 ...
  • 看到网上有个方案说:主项目负责加载组件,由于主项目和组件之间是隔离的,那么主项目如何调用组件ApplicationLike的生命周期方法呢,目前采用的是基于编译期字节码插入的方式,扫描所有的ApplicationLike类(其有一...
  • 新版Android开发教程.rar

    千次下载 热门讨论 2010-12-14 15:49:11
    310 万像素摄像头。 流媒体 支持视频格式: H.264 、流媒体、 3GPP 、 MPEG4 和 Codec 3GP ;支持音频格式: MP3 、 AAC 、 AAC+ 、 W MA 、 MPEG4 、 WAV 、 MIDI 、 REAL 、 AUDIO 和 OGG ;支持墙纸格式: JPG ...
  • 范例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...
  • 直流驱动,超低功耗(单管0.03瓦-1 瓦)电光功率转换接近100%,相同照明效果比传统光源节能80%以上。 LED 长寿命:LED 光源被称为长寿灯。固体冷光源,环氧树脂封装,灯体内也没有松动的部分,不存在灯丝发光易烧...

空空如也

空空如也

1 2
收藏数 24
精华内容 9
关键字:

像素与字节大小转换