专栏首页ROBOTEDU【简单的CV】1.4 图片导入与像素值

【简单的CV】1.4 图片导入与像素值

01

PNG、JPG和BMP?

在学习导入图片和像素值之前,我们先讨论一个问题,为什么电脑中图片文件的格式会有JPG/PNG/BMP/....等不同格式呢?

首先我们明确一点,格式的不同不会变化图片的内容,比如三张图就是同张图片的三种不同格式:

既然内容一致,为什么电脑要区分不同格式的文件?答案是图片的压缩算法不同。BMP|JPG|PNG分别对应不同的图片压缩算法,所以它们在电脑硬盘中占用的空间也就各不同:

特别说明位图格式(BMP格式)使用的算法是我们上期所说的RPG格式+一个透明值,一个像素具有三种颜色的值+一个透明值的格式,在计算机种每个单独颜色值用一个字节(1 Byte)来存储,所以一个像素值就需要用四个字节(4 Byte,24bit)来表示,这样编码的图片也称作24位图片。

那么之前我们说过小米传说的1亿像素如果用BMP的格式来存放,一张图片需要多大的硬盘空间呢?

额,嗯,差不多382GB....

JPG和PNG是使用了其他的算法可以大幅减少硬盘的占用空间,感兴趣的同学可以自行搜索。

02

图片文件的读取(C#)

C#界面,Mircrosoft Visual Studio 2017

WPF界面,单击按钮可以选择导入图片,单击图片的任意位置可以将当前位置的像素信息提示在文本中。

软件演示

图片文件读取代码

Filter 过滤器设置(设置想要查看的文件格式)

RestoreDirectory 设置记录默认路径

ShowDialog() 打开对话框

03

像素值读取

注意,这里首先创建的是一个Image,Image不具有读像素的方法,因此我们把它赋值到一个Bitmap(位图类)中,来读取像素值。

Image.FromFile() 由文件创建Image

Bitmap.GetPixel() 读取像素值

小结

1. 计算机中的图片格式,BMP格式图片的编码方式

2. VS中读取图片的方法

3. VS中获取图片像素值的方法

本文分享自微信公众号 - ROBOTEDU(RobotEDU_China),作者:EDEN.CHEN

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-10-05

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 简单的CV(计算机视觉)学习

    计算机图形学(Computer Graphics,简称CG),计算机图形学的主要研究内容就是研究如何在计算机中表示图形、以及利用计算机进行图形的计算、处理和显示...

    EdenChen
  • 【RAPID】中断程序详讲

    thank you~

    EdenChen
  • 【Omron】视觉校准与补偿的流程设置

    EdenChen
  • MySQL 复制 - 性能与扩展性的基石 4:主备切换

    一旦使用 MySQL 的复制功能,就很大可能会碰到主备切换的情况。也许是为了迭代升级服务器,或者是主库出现问题时,将一台备库转换成主库,或者只是希望重新分配容量...

    北国风光
  • HarborConnect SD-WANaaS|云时代的广域网,体验成本的完美平衡

    港湾人儿
  • 网络安全法与AiLPHA大数据智能安全平台

    - END -

    安恒信息
  • 网络时代的谍纸天眼 — 安全数据大脑

    - END -

    安恒信息
  • 物联网IoT安全服务案例分享

    ——END——

    安恒信息
  • Flink 实战 | 贝壳找房基于Flink的实时平台建设

    zhisheng
  • 12星座程序员写代码

    ---- ---- ---- ---- ---- -END-

    李海彬

扫码关注云+社区

领取腾讯云代金券