小春网

 找回密码
 注册账号
查看: 2129|回复: 6
收起左侧

[IT 交流] 求助:c语言画像处理程序

[复制链接]
发表于 2008-7-19 16:51:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册账号

x
教授让用C写个关于bmp画像处理的程序~  刚开始是从画像的扩大和缩小着手~  在研究室整了一个多星期没整明白[..200752115048370.]

请各位前辈帮忙~   
程序可以是: 一幅灰度图像的二值转换;图像识别;图像的提取; 图像的扩大和缩小.

小弟在这里先谢谢了~[.D81A0477.]
20080701_ff18e859029341a4764fp5SbJkibu6qS.gif
发表于 2008-7-22 17:54:21 | 显示全部楼层

给你一个我以前写过的BMP简单缩小程序.

给你一个我以前写过的BMP简单缩小程序
我加一些注释给你。估计有些拼写错误,.没有考虑速度没有考虑错误处理等等,只是个基本的流程你将就一下。不懂的话我们一起讨论。
虽然是C++写的,基本也都是C函数。

#include
#include
#include
#include
using namespace std;
#define WIDTHBYTES(bits) (((bits)+31)/32*4) //计算每行字节数
#define ZOOMX  2 //X方面的缩小率倍数
#define ZOOMY  2//Y方面的缩小率倍数
//下面的一些变量定义在MFC的wingdi.h里面有;当然本来BMP程序用MFC最好处理的。
typedef unsigned char       BYTE;
typedef unsigned long       DWORD;
typedef unsigned short      WORD;
typedef __nullterminated char  *LPSTR;

typedef struct tagbmpReadFileHead { //BMP文件头结构
        char    bfType0;//'BM'
        char    bfType1;//'BM'
        DWORD   BfSize;   //Size of Bmpfile
        WORD    bfReserve1;
        WORD    bfReserve2;
        DWORD   BfOffBits;
} bmpReadFileHead ;
typedef struct tagbmpReadInfHead {//BMP位图信息头结构
        DWORD   biSzie;
        DWORD   biWidth;
        DWORD   biHeight;
        WORD    biPlanes;
        WORD    biBitCount;
        DWORD   biCompression;
        DWORD   biSizeImage;
        DWORD   biXpelspermeter;
        DWORD   biYpelspermeter;
        DWORD   biClrUsed;
        DWORD   biClrImprotant;
} bmpReadInfHead ;

void main()
{
  FILE *readBmpFile, *writeBmpFile;
  cout
回复

使用道具 举报

发表于 2008-7-24 11:48:04 | 显示全部楼层
首先要理解以下问题
1。 是用C语言吗?  老师只是单纯的考验你们的编程能力?
2。 还是你说的C语言其实是C++?  VC.net不行吗?

如果要用纯C语言写, 那么也许老师只是要考验你们的程序能力而已, 没有实际意义。
要用纯C++写  那么也只是练习了  当然也可以出产品 (Win32应用程序)

我个人的经验推荐  VC++(MFC)  BITMATFILEHEADER, BITMAPINFOHEADER等结构体定义都已经可以直接使用了 头文件自动包含好了   可以读BMP文件得到像素点数据,进行处理     至于图像的放大,缩小可以用GDI处理

当然 当今网络时代 VC++ 也出了.net版本,  GDI 也成了 GDI+ ,  如果目的是一边练习编程,一边打算将来, 而且如果做得好就出产品  ------- 如果想一举三得   那么, 我个人推荐 VC++.net + GDI+   来做。

GDI+的图像放大,缩小功能非常强大, 还可以指定放大,缩小时候的差值计算方法  非常优秀

我做过 任意文件嵌入到24位无压缩BMP图片里的 程序(VC++(MFC) + GDI), BMP图片在嵌入文件前后看起来没有变化(其实肯定是变化了,只是肉眼无法识别出来而已) , 而且BMP图片的字节数不变。  我是得到了各个像素点字节,对齐进行文件嵌入,  估计你要做的2值转换也可以这样实现。  如果需要程序,发短信给我邮箱地址。

(我做的程序只是自己玩的  没有产品化  使用时会有一点不方便 不过 重要的是程序代码 不是界面)
回复

使用道具 举报

发表于 2008-7-25 16:54:50 | 显示全部楼层
图像处理的话,是windows还是的其他操作系统?非要BMP么。

我觉得PPM和PGM格式方便,哈哈。

如非要用BMP,opencv知道否?

不知道的话,c也是有的,如果你们老师想考验你们写程序的能力,比如读取BMP文件,那下面这个链接你就别看了。你可以去wiki查查bmp的格式,研究一下,然后自己写程序。

http://xplanet.sourceforge.net/xplanet-release/src/libimage/bmp.c

如果是考察图像处理方面的话,那么这个可以作参考的。

有本入门书,粉色的,日文,只不过是针对PGM格式,不但有你这些内容,还有傅立叶变换轮廓神经网络遗传算法等等c程序。
回复

使用道具 举报

发表于 2008-8-17 09:36:26 | 显示全部楼层
你的问题~OpenCV+IPL~~~~~~~~~~~~~
用不了十几step数就可以轻松搞定~就是装的时候有点费时间~
回复

使用道具 举报

发表于 2008-8-29 04:53:42 | 显示全部楼层
两位区斑竹给你回复,真牛
回复

使用道具 举报

头像被屏蔽
发表于 2008-8-29 12:46:26 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

小春网
常务客服微信
微信订阅号
手机客户端
扫一扫,查看更方便! 快速回复 返回顶部 返回列表