使用图像处理子集时的错误及其解决方案

1.readImage.C函数的修改结果如下:

#include <stdio.h>
#include<gl/GLUT.H>

GLubyte*
readImage( const char* filename, GLsizei* width, GLsizei *height )
{
    int       n;
    GLubyte*  pixels;

    FILE* infile = fopen( filename, "rb" );

    if ( !infile ) {
    fprintf( stderr, "Unable to open file '%s'\n", filename );
    return NULL;
    }
  /*fread( &byHeightLow, sizeof( BYTE ), 1, infile );
    fread( &byHeightHi, sizeof( BYTE ), 1, infile );*/// 去除这两行,而是用下面两行取代
    *width = 599;
    *height = 401;

    n = 3 * (*width) * (*height);

    pixels = (GLubyte *) malloc( n * sizeof( GLubyte ));
    if ( !pixels ) {
    fprintf( stderr, "Unable to malloc() bytes for pixels\n" );
    return NULL;
    }

    fread( pixels, sizeof( GLubyte ), n, infile );
    
    fclose( infile );

    return pixels;
}


 2.convolution.c、colorTable.c等c文件的修改如下: 

1.因为图像处理子集是拓展库glew实现的,所以:

  • 加入glew.h头文件
  • 加入glew32.lib库文件.有两种方式,从项目属性中,link配置处添加或者在程序中添加 #pragma comment(lib,"glew32.lib")
  • 在第一次调用glew中的函数之前,例如glcolorTable之前(一般在init函数中),要初始化glew库。初始化方法为增加代码 glewInit();直接在glcolorTable前一句代码添加此代码,否则还是有可能出错,原因不详。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值