幻影小刺客 发表于 2013-10-16 22:18:07

C/C++程序中怎么读入一副图像进行加工

   我们这学期学了数字图像处理技术。但至今还不会使用opencv读入一副图像进行处理。而且马上就要交作业了。求帮助啊。我们上课叫了一下空间域和频率域的处理啊,还有傅立叶变化啊。但我还不会。我们说一副图像就是一个矩阵,那么我们读入的是一个矩阵吗,用什么存这个矩阵。而且什么GRB的是怎么回事?我很想知道一副图像是怎么构成的,希望懂的人帮忙解答我的疑惑。

仰望天上的光 发表于 2013-10-17 09:02:01

1. C语言可以读取2进制文件。
2. 图像是2进制文件。
3. 所以你只要知道图像的内存存储格式,就可以把图像中的每个点的值读出来。
4. 从你的问题来看,你不知道某种图像在内存里的存储格式,这可以baidu下,其实可以baidu到很多直接读取图像2进制文件并处理的程序。

苹果沃珂 发表于 2013-10-17 11:03:08

本帖最后由 苹果沃珂 于 2013-10-17 11:04 编辑

OpenCV库里面有自己的输入图像函数:VS2008设置OpenCV的方法,间文章http://bbs.fishc.com/thread-37891-1-1.html
以下例程: 图像的来源来自命令行,可修改为char* pPhoto = "C:\\a.bmp";
将pImg = cvLoadImage( argv, 1)) != 0 )
修改为pImg = cvLoadImage( pPhoto, 1)) != 0 )自于仕琪的讲稿
《使用OpenCV进行图像处理》]中的例程
***********************************************************************
* OpenCV example
* By Shiqi Yu 2006
***********************************************************************/

#include "cv.h"
#include "highgui.h"

int main( int argc, char** argv )
{
    IplImage* pImg; //声明IplImage指针

    //载入图像
    if( argc == 2 &&
      (pImg = cvLoadImage( argv, 1)) != 0 )
    {
      cvNamedWindow( "Image", 1 );//创建窗口
      cvShowImage( "Image", pImg );//显示图像

      cvWaitKey(0); //等待按键

      cvDestroyWindow( "Image" );//销毁窗口
      cvReleaseImage( &pImg ); //释放图像
      return 0;
    }

    return -1;
}

微博评论 发表于 2013-10-28 13:08:39

还不会吗?

http://bbs.fishc.com/xwb/images/bgimg/icon_logo.png 来自 852的少年 的新浪微博
页: [1]
查看完整版本: C/C++程序中怎么读入一副图像进行加工