求助!位图到数组!!

lxchgs 2014-04-10 04:19:01


如图所示:比如一张6X4位图,按位图信息存入二维数组内,在数组中就是
010010
011110
010000
000000

小弟琢磨几天,也没能解决,请大神出来帮帮忙!!

...全文
167 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
lxchgs 2014-04-10
  • 打赏
  • 举报
回复
引用 5 楼 schlafenhamster 的回复:
BYTE *pMap=new BYTE[height*pitch/8]; //////////////////////////////////////////////////////////////////////////////////////////////////////////// for(int i=0;i<height;i++) { for(int j=0;j<pitch/8 ;j ++) { BYTE a = buffer[i*pitch/8+j]; pMap[[i*pitch/8+j]=a; } } 试试看
恩,还有些小问题,自己可以解决,谢谢schlafenhamster!!!
shiter 2014-04-10
  • 打赏
  • 举报
回复
这个用opencv做就是几行代码吧
schlafenhamster 2014-04-10
  • 打赏
  • 举报
回复
BYTE *pMap=new BYTE[height*pitch/8]; //////////////////////////////////////////////////////////////////////////////////////////////////////////// for(int i=0;i<height;i++) { for(int j=0;j<pitch/8 ;j ++) { BYTE a = buffer[i*pitch/8+j]; pMap[[i*pitch/8+j]=a; } } 试试看
lxchgs 2014-04-10
  • 打赏
  • 举报
回复
int   nMap[500][500]={0,0};


 
void ReadMap(CString bmpPath)
{

	BITMAPFILEHEADER fileheader;
	BITMAPINFO info;
	FILE *fp;
	fopen_s(&fp,bmpPath,"r");
	fread(&fileheader,sizeof(BITMAPFILEHEADER),1,fp);
	fread(&info.bmiHeader, sizeof(BITMAPINFOHEADER), 1, fp);
        width=info.bmiHeader.biWidth;
	height=info.bmiHeader.biHeight;
	UCHAR *buffer=new UCHAR[info.bmiHeader.biSizeImage];
	fseek(fp,fileheader.bfOffBits,0);
	fread(buffer,info.bmiHeader.biSizeImage,1,fp);
	
	

 	if(info.bmiHeader.biBitCount==1)
  	{
		
		int pitch=width+width%2;
		for(int i=0;i<height;i++)
		{
			for(int j=0;j<width;j++)
			{  
                            // short int a = (short int)buffer[(i*pitch+j)/8];
                             if(a != 0)
                                {
                                        nMap[i][j]=1;
                                 }
			   
			}
		}
	
	}

   	delete []buffer;
	buffer=NULL;

}
lxchgs 2014-04-10
  • 打赏
  • 举报
回复
引用 1 楼 schlafenhamster 的回复:
就是 取 每个方格 (pixel) 的 颜色(如果已经显示就是 getPixel, 还没显示 就是 遍历 每个 pixel) ,是 白 为0; 是 黑 为 1.
如果使用GetPixel][/align],那么当图较大时,非常卡!
叶恭介叶恭介 2014-04-10
  • 打赏
  • 举报
回复
直接读取位图的数据,CFile read......位图数据最好读取了.
schlafenhamster 2014-04-10
  • 打赏
  • 举报
回复
就是 取 每个方格 (pixel) 的 颜色(如果已经显示就是 getPixel, 还没显示 就是 遍历 每个 pixel) ,是 白 为0; 是 黑 为 1.

19,469

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧