精华内容
下载资源
问答
  • BMP图像结构及其大小计算

    千次阅读 2012-05-18 05:38:37
       本文详细介绍了BMP图像结构,位图文件头、位图信息头及彩色表的数据结构及作用;深入阐述了BMP文件大小的精准计算方法,包括“补零”原则。BMP文件存储数据时,图像的扫描方式是按从左到右、从下到

    转自http://hi.baidu.com/%D7%B7%D2%E4%B5%C4%C4%BE%CE%DD/blog/item/b34010eea7aa93e3b3fb95dc.html

     

           本文详细介绍了BMP图像结构,位图文件头、位图信息头及彩色表的数据结构及作用;深入阐述了BMP文件大小的精准计算方法,包括“补零”原则。BMP文件存储数据时,图像的扫描方式是按从左到右、从下到上的顺序,具体数据举例:

    BMP文件开头:

    424D 4690 0000 0000 0000 4600 0000*2800 0000 8000 0000 9000 0000 0100 1000 0300 0000 0090 0000 A00F 0000 A00F 0000 0000 0000 0000 0000*00F8 0000 E007 0000 1F00 0000 0000 0000*02F1 84F1 04F1 84F1 84F1 06F2 84F1 06F2 04F2 86F2 06F2 86F2 86F2 .... ....

    BMP文件可分为四个部分:位图文件头、位图信息头、彩色板、图像数据阵列,在上图中已用*分隔。注意:很多文章都分错了!!

     

    一、位图文件头

    typedef struct tagBITMAPFILEHEADER {
    UINT bfType;       
    // 
    2字节1字节(1Byte=二进制8位(8bit=十六进制2
    DWORD bfSize;     // 
    4字节
    UINT bfReserved1;
    UINT bfReserved2;
    DWORD bfOffBits;
    } BITMAPFILEHEADER;

    11:(这里的数字代表的是"",即两个字节,下同)图像文件头。0x4D42="BM",表示是Windows支持的BMP格式。若问为什么加"BM"Windows就喜欢这么干。

    22-3:整个文件大小。4690 0000,为00009046h=36934.

    34:保留,必须设置为0

    45:保留,必须设置为0。也可能考虑以后还能加点什么。

    56-7:从文件开始到实际位图数据之间的字节偏移量。4600 0000,为00000046h=70(十进制),文件头14字节+下面的位图信息头40字节+此例彩色板16字节=70字节。

     

    二、位图信息头

    typedef struct tagBITMAPINFOHEADER {
    DWORD biSize; 
    LONG biWidth;     
    //
    4个字节
    LONG biHeight; 
    WORD biPlanes;    
    //位图的位面数,该值总是被设为1
    WORD biBitCount;  //
    说明此位图的位数(bit数)
    DWORD biCompression; 
    DWORD biSizeImage; 
    LONG biXPelsPerMeter; 
    LONG biYPelsPerMeter; 
    DWORD biClrUsed; 
    DWORD biClrImportant;
    } BITMAPINFOHEADER;

    68-9:位图信息头所需字节数,固定值2800 0000=00000028h=40(十进制)。Windows开辟这4个字节有点浪费内存的说。

    710-11:位图宽度,以像素为单位。8000 0000,为00000080h=128.

    812-13:位图高度,以像素为单位。9000 0000,为00000090h=144.

    914:位图的位面数,该值总是被设为1.  0100,为0001h=1.

    1015:说明比特数/像素的颜色深度。有1(单色),42^4=16色),8256色),1665536色,又称64K色,高彩色),2416777216色,即16M色,真彩色),324294967296色,即4096M色,增强型真彩色)。1000,为0010h=16.由此可知,此例是16位位图,而不是真彩图(24位位图)。

    1116-17:压缩说明:有0(不压缩),1RLE 88RLE压缩),2RLE 44RLE压缩,3Bitfields,位域存放)。RLE简单地说是采用像素数+像素值的方式进行压缩。T408采用的是位域存放方式,用两个字节表示一个像素,位域分配为r5b6g5。图中0300 000000000003h=3.

    1218-19:说明图像的大小,以字节为单位。该数必须是4的倍数,数值上等于位图宽度×位图高度×每个像素字节数。0090 000000009000h=128×144×2=36864.

    1320-21:用象素/米表示的水平分辨率。A00F 00000000 0FA0h=4000.

    1422-23:用象素/米表示的垂直分辨率。A00F 00000000 0FA0h=4000.

    1524-25:位图使用的彩色表中的颜色索引数。设为0的话,则说明使用所有调色板项。

    1626-27:对图象显示有重要影响的颜色索引的数目。如果是0,表示都重要。

     

    三、彩色表

    对于调色板中的每个表项,用下述方法来描述RGB的值:

    typedef struct tagRGBQUAD {
    BYTE rgbBlue;    
     //1
    字节用于蓝色分量
    BYTE rgbGreen;    //1字节用于绿色分量
    BYTE rgbRed;      //1
    字节用于红色分量
    BYTE rgbReserved; // 1
    字节用于填充符(设置为0
    } RGBQUAD;

    注意:彩色表多在伪彩色(不够十进制16777216种颜色)时用到。对于24位(24bit)真彩色(2^24= 256蓝色*256绿色*256红色=16777216色)位图,又叫RGB彩色BMP图像,则不使用彩色板,因为位图中的RGB值就代表了每个象素的颜色。那要彩色表干嘛呢?在伪彩色图中,极端一点比如一幅512*512的伪彩色图就只有2种颜色,非黑(00000000)即红(FFFF0000),那么该图可以设为1位位图,彩色版中只有两色,每个像素其实1bit就可以表示,用半个字节(4bit)就足以表示了,何必每像素3个字节的浪费内存呢?

    1728-35:彩色板为00F8 0000 E007 0000 1F00 0000 0000 0000,这幅伪彩色图中只有4种颜色,分别是:

    00FB 0000FB00h=64256(十进制),某种混合色。

    E007 000007E0h=2016(十进制),某种混合色。

    1F00 0000001Fh=31(十进制),某种混合色。

    0000 0000为纯黑色。

    另外举几个颜色案例:


     

    四、图像数据阵列

    18) 36-...:每两个字节表示一个像素。阵列中的第一个字节表示位图左下角的象素,而最后一个字节表示位图右上角的象素。

          

    五、位图文件大小的精准计算方法

          8位(bit)位图:彩色版中有2^8=256种颜色,具体哪256种颜色可由调色板灵活规定,因此每个像素点最多有256种情况(颜色),故刚好可用两位十六进制码(16^2=256)表示,占1字节。一幅512×5128位位图大小计算方法:位图文件头(14字节)+位图信息头(40字节)+调色板(256×彩色表4字节)+实际像素点占内存512×512×1字节)=263 222字节(Byte)。

          24位位图:又名RGB真彩色图,含2^24=16 777 216=16M色,没有彩色表,原因上文已说明。每个像素点由3个字节(十六进制码6位)表示,每个字节负责控制一种颜色,分别为蓝(Blue)、绿(Green)、红(Red)。为什么每种颜色用1个字节控制呢?我们知道,图像中任何颜色都是由蓝、绿、红混合而成,而在24位位图中这三种颜色的跨度(深度)分别为256=2^8,占二进制8bit=1字节,故蓝、绿、红刚好可用1个字节表示。那么每个像素点可能的颜色就有256×256×256=2^24种。一幅256×25624位位图大小计算方法:位图文件头(14字节)+位图信息头(40字节)+实际像素点占内存256×256×3字节)=196 662字节(Byte)。

        需要注意的是,Windows有“补零”的习惯!即要求位图的每一行像素所占字节数必须被4整除。若不能倍4整除,则在该位图每一行的十六进制码末尾“补”13个字节的“00”。例如:一幅宽253×高25624位位图,微软在生成该图为实际文件时,计算每一行像素所占字节=253×3字节=759字节,检验其被4除余1,则在每行的十六进制码末尾加1个字节,补“00”,变为760字节。因此我们计算该图大小时应先判断是否“补零”,再得出算法:该图大小=位图文件头(14字节)+位图信息头(40字节)+实际像素点占内存256×每行760字节)=194614字节(Byte)。

        有趣的是,“补零”只针对位图的宽进行检验,一幅宽256×高25324位位图,其大小=位图文件头(14字节)+位图信息头(40字节)+实际像素点占内存253×每行768字节)=194358字节(Byte< 196 662字节(Byte)。这样,只是把此图像的宽和高颠倒,图像所占内存竟然变小了。


     

    展开全文
  • YUV2一帧数据大小计算

    千次阅读 2015-05-05 10:29:20
    由于摄像头输出的数据是Y0UY1V的格式,又叫YUV12 这样对于每2个像素就要输出4个字节的数据,Y0UY1V,其中Y0,Y1共用U和V。...所以对于一个1024*768的图像实际的YUV数据大小就为 1024*768*2=1572864

    由于摄像头输出的数据是Y0UY1V的格式,又叫YUV12

    这样对于每2个像素就要输出4个字节的数据,Y0UY1V,其中Y0,Y1共用U和V。相当于一个像素占用2个字节了。

    所以对于一个1024*768的图像实际的YUV数据流大小就为

    1024*768*2=1572864



    展开全文
  • 自己做数字图像处理的时候一点点收集的数据集。 灰度图含:BSD68,Set12,...数字图像处理常用数据集BSD68,68张灰度图,大小不一。 下载链接: 数字图像处理数据集(一)-BSD68 https://download.csdn.net/dow...

    自己做数字图像处理的时候一点点收集的数据集。

    灰度图含:BSD68,Set12,RN16。

    彩色图含:CBSD68,Kodak24,McMaster,RNI15,CSet8

    预览含下载链接。

     

    BSD68

    数字图像处理常用数据集BSD68,68张灰度图,大小不一。

    下载链接:

    数字图像处理数据集(一)-BSD68 

    https://download.csdn.net/download/iteapoy/10902860

     

    CBSD68 

    数字图像处理常用数据集CBSD68,68张彩色图,大小不一。

    下载链接:

    数字图像处理数据集(二)-CBSD68

    https://download.csdn.net/download/iteapoy/10902888

     

    Set12

    数字图像处理常用数据集Set12,12张灰度图(含lena,cameraman,house,pepper,fishstar,monarch,airplane,parrot,barbara,ship,man,couple),01-07是256*256,08-12是512*512.

    下载链接:

    数字图像处理数据集(三)-Set12

    https://download.csdn.net/download/iteapoy/10903033

     

    CSet8

    数字图像处理常用数据集CSet8,8张彩色图(含lena,house,pepper,monarch,airplane,baboon,barbara,ship),大小都为256*256.还有一张未裁剪的monarch.

    下载链接:

    数字图像处理数据集(四)-CSet8

    https://download.csdn.net/download/iteapoy/10903037

     

    Kodak24

    数字图像处理常用数据集Kodak24,24张彩色图,大小都为500*500

    下载链接:

    数字图像处理数据集(五)-Kodak24

    https://download.csdn.net/download/iteapoy/10903047

     

    McMaster

    数字图像处理常用数据集McMaster,.tif格式,18张彩色图,大小都为500*500

    下载链接:

    数字图像处理数据集(六)-McMaster

    https://download.csdn.net/download/iteapoy/10903057

    RNI6

    数字图像处理常用数据集RNI6,含6张灰度图,大小不一。

    下载链接:

    数字图像处理数据集(七)-RNI6

    https://download.csdn.net/download/iteapoy/10903065

     

    RN15

    数字图像处理常用数据集RN15,含15张彩色图,大小不一。

    下载链接:

    数字图像处理数据集(八)-RN15

    https://download.csdn.net/download/iteapoy/10903181

     

     

    展开全文
  • 用于计算一系列图像的一阶和二阶统计数据的 GUI。 计算平均值、RMS、偏度和峰度 - 一阶统计量。 (与文件 ID 相同:#25981 - 用于计算图像粗糙度参数的 GUI) 可以选择过滤图像的低频和高频分量,并为每个分离的...
  • 还是目前在做的数学公式识别问题,目前我使用的代码框架是opennmt,因为训练数据每张大小都不同,在训练的时候需要对每个batch里的图像进行pad,主要就是将同一个batch里的图像pad到最大的那张图像大小,而且是在...

      还是目前在做的数学公式识别问题,目前我使用的代码框架是opennmt,因为训练数据每张大小都不同,在训练的时候需要对每个batch里的图像进行pad,主要就是将同一个batch里的图像pad到最大的那张图像大小,而且是在图像右边进行pad(注意预处理图像的时候图像下方和右边一定不要贴着图像中的符号的位置进行切图,一定要留白,后边会解释这个原因)。现在的目的是在训练的解码部分mask掉图像的pad部分,因为要用自然场景的图像进行训练而pad部分会对精度产生影响(如果是白底黑字的合成数据pad不会造成影响),下图左是pad示意图,图右是我的训练数据的留白示意图(红框部分就是我的留白),

      mask掉pad部分主要是将pad部分的值置为负无穷,注意不是将输入编码器的原图的pad部分置为负无穷,而是将经过编码器然后在解码器中算完attention score的feature map的pad部分置为负无穷(也即计算softmax前的feature map)。mask的原理是将pad部分置为负无穷,然后计算softmax后pad部分的权重就是零,这样就消除了pad部分的影响。

      mask的实现过程首先需要计算出原图像中pad部分在feature map中的映射位置,其主要方法就是计算原图和feature map大小的比例,然后根据原图中pad部分的坐标位置计算出pad部分在feature map中的位置(注意因为根据比例计算feature map中的映射位置,所以计算出的结果一般都不是整数,我这里建议使用四舍五入取整不要使用向上取整或者向下取整)。可以根据目标检测中原图ROI区域到feature map映射位置的参考方法,如:

    https://blog.csdn.net/qq_29133371/article/details/53172994

    https://blog.csdn.net/w113691/article/details/80567392

     得到feature map中pad位置的映射之后就可以直接把这些部分的值置为负无穷就完成了mask任务。现在解释一下为什么要在图像的下部和右部留白,我在刚开始训练的时候没有留白,然后在训练过程中出现梯度消失,参数不更新全部是nan的问题,然后找了好久的原因最后分析可能就是没有留白的原因,因为我们计算出的原图中pad部分在feature map中的位置不可能完全完美的对应,可能feature map中置为负无穷的点在原图中的映射也包含图像内容,如下如图所示,红色表格是feature map,其中填有p的是feature map中和原图pad部分的映射,左边原图的下方绿色表格是pad部分,因为前面说的我们计算的原图pad部分和feature map中pad部分映射不是完美对应,造成feature map中应该置为负无穷的部分在原图中的映射不仅包含了pad部分,也包含了原图中的部分如蓝框所示,然后我们把feature map中的pad置为负无穷就会造成原图中的信息缺失,这样训练就会出错,累计多了就出现梯度为nan的情况。解决这个问题的办法就是上面说的在图像的下方和右方留白(如果是四周pad就在四周留白)。

    留白之后的示意图如下:虽然feature map的pad部分在原图中的映射也包含了原图的部分内容,但是这部分内容是留白并没什么用也就不会造成图像信息的丢失。

    其他可参考:

    http://juditacs.github.io/2018/12/27/masked-attention.html

    https://www.pianshen.com/article/1916976296/

    https://discuss.pytorch.org/t/applying-mask-caused-nan-grad/15470

    展开全文
  • #截取部分图像数据 cat = img[0:50, 0:200] cv_imgshow('cat', cat) 二、像素点计算 dst = cv.add( src1, src2[, dst[, mask[, dtype]]] ) 该函数如果加起来大于255,则就取最大值255,否则取加起来的值 代码示例...
  • 访问图像数据

    2017-06-29 22:11:05
    图像每行字节数的计算 利用宏:#define WIDTHBYTES(bits) (((bits) + 31) / 32 * 4)  bmp文件的数据块部分不是直接的一个个像素排列后存储。为了要保证每行的字节数都能够被4整除, 往往要在每行数据后面补充1,2或...
  • 图像数据的处理

    2020-08-23 17:35:01
    这一小结,主要总结Opencv处理图像数据的方法,包括图像的读取,变换和保存。 1.图像的读取 #导入opencv工具包,安装: pip install opencv-python import cv2 #导入图片 img = cv2.imread('D:\image_dataset\cat....
  • 我们的 CoAtNet 在不同数据大小的可比资源限制下实现了 SOTA 性能。 具体来说,在低数据机制下,由于有利的归纳偏差,CoAtNet 继承了 ConvNets 的强大泛化特性。 此外,在大量数据的情况下,CoAtNet 不仅享有 ...
  • 每个图像大小调整为20x20像素,然后转换为1x400像素值矢量。 逻辑回归算法尝试将参数拟合到400个像素值以形成假设函数。 为了优化参数,该算法定义了成本函数,然后对参数执行梯度下降。 可调参数是为创建更复杂...
  • 调整图像大小,但不需要在请求正文中发送图像数据。 相反,您提供URL,服务将从Web上获取图像,然后返回调整后的图像。 generate ico files ml classification of image ref: - https://cloud.go
  • DL图像数据增广

    千次阅读 2018-07-09 10:36:55
    数据增广计算机视觉有七类分类问题: 不同的视角,不同的大小,物体的形变问题,物体的遮挡问题,光照条件,背景复杂的问题,每一类中有多种形态的问题。 而数据增广的思路也就是解决这个问题。数据增广如何增广...
  • 除了提供一些流行的功能外,该工具箱还设计用于与不断增加的现代数据大小一起使用 - 处理分批完成,并在单台机器上完全并行(使用 parfor),并且可以轻松分发跨具有公共文件系统的多台机器(许多大学的标准集群...
  • 1、设输入图像尺寸为WH,卷积核大小为FF,步长为S,图像通道数为C,Padding为P,即: 卷积后输出的图像大小为: 2、池化的计算公式 nn.Conv2d( in_channels, out_channels, kernel_size, stride=1, padding=0, ...
  • 图像帧的大小图像的格式

    千次阅读 2017-12-11 09:50:20
     首先要明确一点, RGB 和 YUV 只是两种很笼统的划分方法,还需要知道具体的封装方式,才有办法计算出视频帧数据的实际大小。  对于YUV而言, YUV 格式通常有两大类:打包( packed )格式和平面( planar )格式...
  • 题目索引简介总结图像数据读取图像显示和保存图像一些简单操作图像灰度化图像尺寸的计算图像类型图像大小图像类型视频读取截取部分图像数据颜色通道提取颜色通道合并只保留某个通道边界填充数值计算图像缩放图像融合...
  • 第一,又进行了一次特征提取,所以能减小下一层数据的处理量。 第二,能够获得更为抽象的信息,从而防止过拟合,也就是提高了一定的泛化性 第三,由于这种抽象性,所以能对输入的微小变化产生更大的容忍,也就是保持...
  • 图像采集及传输速率计算

    千次阅读 2020-11-03 09:59:32
    图像大小(Image Size)∶W×H(长×宽)—您必须首先了解∶需要采集多大的图象尺寸? 颜色深度∶d(比特数)—希望采集到的图象颜色(8Bit灰度图象?还是16/24/32Bit真彩色?) 帧 速∶f —标准PAL制当然就是25帧,非标准就...
  • 图片大小计算方法

    千次阅读 2013-04-30 14:28:20
    BMP   BMP是一种与硬件设备无关的图像文件格式,使用非常广。...BMP文件存储数据时,图像的扫描方式是按从左到右、从下到上的顺序。   由于BMP文件格式是Windows环境中交换与图有关的数据的一
  • 数值数据在计算机中的表示方法

    千次阅读 2019-01-11 09:33:01
    后者字符汉字图像等。 1.数据的单位 (1)位(bit) 最小数据单位,简称为位。 (2)字节(Byte) 8位二进制数。00000000-11111111。表示存储空间大小的基本容量单位。 1B=8bit;1KB=1024B。。。 (3)字(W...
  • 数据在计算机中的存储形式和运算

    千次阅读 2018-03-08 10:24:29
    非数值数据主要包括字符、声音、图像等,这类数据在计算机中存储和处理前需要以特定的编码方式转换为二进制表示形式。 数制及其转换1.数制 计算机中常用的记数制是二进制、八进制、十六进制。2.数制转换(1)十...
  • 一、学习目标 了解opencv中图像运算的方法 了解opencv中图像运算的...以上是我三张图片的尺寸大小数据。每张图片如下: 1bit: 1bit2: 1bit3: 我们可以先将图片1bit与图片1bit3做加法运算。opencv提供了add方法给
  • pycocotools提供了COCOeval,可以让我们方便地计算coco数据集的mAP。然而,如果我们只想计算少量图像的mAP,该如何做呢? coco2017数据集由训练集、验证集、测试集组成。训练集中一共拥有118287张图像,验证集中有...
  • 我正在开发一个图像采集的应用,需要知道图像采集所需要的带宽,应该如何来计算每秒钟我采集的数据大小呢? 解答: 当考虑图像采集所需要的带宽时,我们需要考虑两种数据传输速率:瞬时速率和平均速率。下面就向大家...
  • 数据增强这一技术,可以提高训练数据集的大小和质量,从而可以使用它们构建更好的深度学习模型。这篇论文讨论的图像增强算法包括几何变换、颜色空间增强、核函数、混合图像、随机删除、特征空间增强、对抗训练、生成...
  • 对现实教想的存储组织、处理方法的不同,以及空间数据本身的几何特征,空间数据又可分为图形数据和图像数据。 来源与类型 空间数据来源和类型繁多,概括起来主要可以分为地图数据、影像数据、地形数据、属性数据和元...
  • 在 MATLAB 中获取样本数据的平均值很容易:您将所有数据... 如案例二所示,该类可以透明地对标量、数组、矩阵和图像数据项进行操作。 在已发布的 html 页面中描述了两个示例应用程序。 第二个需要图像处理工具箱。
  • **计算机中使用二维数据表示一幅图像。假设有一幅图像大小为5*5,请编程实现这幅图像的水平翻转。**
  • 在Pytorch的官方文档中,nn.Conv2d的输入数据为(B, Cin, W, H) 其中B为batch_size表示batch的大小,Cin为输入数据的特征大小(通道数),W、H对于图像数据来说分别表示图像数据的宽和高。输出数据为(B, Cout, W', H'...
  • 第1章 数据结构. 1 1.1 数组和字符串 2 1.1.1 一维数组的倒置 2 范例1-1 一维数组的倒置 2 ∷相关函数:fun函数 1.1.2 一维数组应用 3 范例1-2 一维数组应用 3 1.1.3 一维数组的高级应用 5 范例1-3 一维数组...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,442
精华内容 576
关键字:

图像数据大小计算