//图像预处理第9步:将最终标准化后的字符图像分为单个单个的HDIB保存,并存为.bmp文件
void CChildView::OnImgprcToDibAndSave()
{
unsigned char* lpSrc;
int w,h;
w=m_charRect.front ().Width() ;
h=m_charRect.front ().Height() ;
m_dibRect.clear ();
m_dibRectCopy.clear ();
int i_src,j_src;
int i,j;
int counts=;
CRect rect,rectnew;
BYTE* lpDIB=(BYTE*)::GlobalLock ((HGLOBAL)m_hDIB);
BYTE* lpDIBBits=(BYTE*)::FindDIBBits ((char*)lpDIB);
BYTE* lpNewDIBBits;
BYTE* lpDst;
LONG lLineBytes=(digicount*w+)/*;
LONG lLineBytesnew =(w+)/*;
HDIB hDIB=NULL;
while(!m_charRect.empty ())
{
hDIB=::NewDIB (w,h,);
lpDIB=(BYTE*) ::GlobalLock((HGLOBAL)hDIB);
lpNewDIBBits = (BYTE*)::FindDIBBits((char*)lpDIB);
lpDst=(BYTE*)lpNewDIBBits;
memset(lpDst,(BYTE),lLineBytesnew * h);
rect=m_charRect.front ();
m_charRect.pop_front ();
for(i=;i<h;i++)
for(j=;j<w;j++)
{
i_src=rect.top + i;
j_src=j+counts*w;
lpSrc=(BYTE *)lpDIBBits + lLineBytes * i_src + j_src;
lpDst=(BYTE *)lpNewDIBBits + lLineBytesnew * i + j;
*lpDst=*lpSrc;
}
::GlobalUnlock (hDIB);
m_dibRect.push_back (hDIB);
counts++;
}
m_charRect=m_charRectCopy;
m_dibRectCopy=m_dibRect;
//输出为.bmp文件
CString str;
counts=;
while(!m_dibRect.empty ())
{
str.Format ("part%d.bmp",counts);
//str=strPath+"\\"+str;
CFile file(str, CFile::modeReadWrite|CFile::modeCreate);
hDIB=m_dibRect.front ();
::SaveDIB (hDIB,file);
m_dibRect.pop_front ();
file.Close ();
counts++;
}
m_dibRect=m_dibRectCopy;
}

图像预处理第9步:存为.bmp文件的更多相关文章

  1. OpenGL(十) 截屏并保存BMP文件

    BMP文件格式 BMP图像又称为Bitmap(位图),是Windows系统中广泛采用的图像格式.BMP文件的数据按照从文件头开始的先后顺序分为四个部分: 我们一般见到的图像以24位图像为主,即R.G. ...

  2. Caffe2 图像预处理(Image Pre-Processing)[6]

    学习如何使得图像符合预训练模型的需求,或者用其他数据集的图像来测试自己的模型. - 调整大小 - 缩放 - HWC和CHW,数据通道交换 - RGB和BGR,颜色通道的交换 - Caffe2的图像预处 ...

  3. [opencv]图像预处理方案及方式

    像识别中,图像质量的好坏直接影响识别算法的设计与效果精度,那么除了能在算法上的优化外,预处理技术在整个项目中占有很重要的因素,然而人们往往忽略这一点. 图像预处理,将每一个文字图像分检出来交给识别模块 ...

  4. ENVI【遥感图像预处理之图像的几何校正】

    ---恢复内容开始--- 一.图像几何校正的概述 1.几何校正方法: 1)利用卫星自带的地理定位文件进行几何校正.主菜单>>>Map>>Georeference传感器的名 ...

  5. 『TensorFlow』第九弹_图像预处理_不爱红妆爱武装

    部分代码单独测试: 这里实践了图像大小调整的代码,值得注意的是格式问题: 输入输出图像时一定要使用uint8编码, 但是数据处理过程中TF会自动把编码方式调整为float32,所以输入时没问题,输出时 ...

  6. 基于OpenCV的火焰检测(一)——图像预处理

    博主最近在做一个基于OpenCV的火焰检测的项目,不仅可以检测图片中的火焰,还可以检测视频中的火焰,最后在视频检测的基础上推广到摄像头实时检测.在做这个项目的时候,博主参考了很多相关的文献,用了很多种 ...

  7. TensorFlow图像预处理完整样例

    参考书 <TensorFlow:实战Google深度学习框架>(第2版) 以下TensorFlow程序完成了从图像片段截取,到图像大小调整再到图像翻转及色彩调整的整个图像预处理过程. #! ...

  8. python+opencv 图像预处理

    一 python 生成随机字符串序列+ 写入到图片上 from PIL import Image,ImageDraw,ImageFont import numpy as np import rando ...

  9. Matlab 读取文件夹中所有的bmp文件

    将srcimg文件下的bmp文件转为jpg图像,存放在dstimg文件夹下 str = 'srcimg'; dst = 'dstimg'; file=dir([str,'\*.bmp']); :len ...

随机推荐

  1. ubuntu安装mysql--PC端

    sudo apt-get update sudo apt-get install mysql-server mysql-client //密码:mmchong sudo netstat -tap|gr ...

  2. sql服务器启动不了问题

    问题:the the service mysql56 failed the most recent status change request with the messagethe service  ...

  3. powershell

    function 怎么执行: http://www.cnblogs.com/bradwarden/p/3370260.html PowerShell script can be used in: 1. ...

  4. C语言堆和栈

    堆和栈的区别 一个由C/C++编译的程序占用的内存分为以下几个部分1.栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等.其操作方式类似于数据结构中的栈.2.堆区(heap ...

  5. 2.4 C#的变量

    在C#中,不仅有常量,还有变量,而且最常用的还是变量.下面是变量的知识. C#的变量有3个步骤:声明.赋值.使用. 变量声明的方法:数据类型 变量名; 变量赋值的方法:变量名=变量的值: 下面是这3个 ...

  6. CURL命令报错:dyld: lazy symbol binding failed: Symbol not found: _SSL_load_error_strings解决办法

    Mac OS X 10.11.6, curl 命令报错,错误如下: dyld: lazy symbol binding failed: Symbol not found: _SSL_load_erro ...

  7. js计算相隔天数日期

    计算40天前的日期: var temp = new Date();console.log(temp);var tempValue = temp.getTime() - 40 * 24* 60*60*1 ...

  8. Hdu 5493 合肥网络赛 1010 Queue

    在线求第k大,第一次用二分+树状数组写...比赛的时候分治啊,splay啊,主席树啊换来换去,然而以前为什么不知道可以这么写... #include <iostream> #include ...

  9. Andy - 又一款速度流畅的免费安卓 Android 模拟器 (支持手机无线控制电脑模拟器)

    随着 Genymotion.BlueStacks 等电脑上的 Android 模拟器流行起来之后,似乎很多人都发现在电脑上运行使用安卓APP软件.畅玩手机游戏确实很有乐趣. 今天我们又发现了一款全新免 ...

  10. 如何用Java代码列出一个目录下所有的文件?

    目录文件夹 File file=new File("H:\\"); for(File temp:file.listFiles()){//Java5的新特性之一就是增强的for循环. ...