我计划做一个关于图像处理的项目,我在这方面的知识总体来说很低。我的首选语言是 C++。
这里的成员可以给我
- 介绍一下什么是图像处理吗?
- 我应该查阅哪些书籍[请记住,我是初学者,我只对制作大学项目感兴趣]
- 我可以使用哪些图书馆? [我了解Boost/OpenCV等。我想知道什么是最简单的并且可以快速完成我的项目 - 这是一个小项目]
除了上述三点之外,如果告诉我我应该知道的任何事情都会有好处帮助。提前致谢。
I am planning to do a project on Image Processing, my knowledge in this subject in general is low. My Preferred Language is C++.
Can the members out here give me:
- A Brief idea of What Image Processing is?
- What books should i consult [ please keep in mind i am a beginner and am ONLY interested in making a college Project ]
- What libraries can i use? [ I know about Boost/OpenCV etc. I would like to know what simplest and can get my project done quickly - its a minor project ]
Apart from the above 3 points, anything which i should know if be told to me will be of good help. Thanks in Advance.
发布评论
评论(5)
我建议读一本好书。图像处理不是一个编程领域 - 它是一个工程领域,涉及数学和信号处理知识和直觉。 Gonzalez 和 Woods 图像处理非常好,不需要大量知识在开始阅读之前先了解一下信号处理的知识。最重要的是,你不能像学习一门新的编程语言那样学习图像处理;而是要学习图像处理。你学习它就像一门全新的学科,恰好涉及编码。为了将其分解为问题的答案,
图像处理是数字信号处理的一门学科,它本身就是计算机科学和应用数学的交叉点。它涉及基于像素的图像操作,用于图像增强(颜色和对比度校正、去噪、去模糊)、视觉效果(空间扭曲、变形、颜色替换)、人工视觉(特征提取、纹理分割、模式识别、空间感知) )。图像处理还有许多狭窄的应用领域,例如雷达图像处理、医学图像处理等。
我上面提到的这本书确实是一本很好读的书。如果它对你来说有点贵,我总是发现去亚马逊搜索一本关于该主题的廉价旧版五星级二手书很有用。从来没有让我失望过。不过要小心不要买太旧的书。
有很多库可以完成这项任务,Boost/CImg 就是其中的一些,这实际上取决于您正在编码的平台。但是,我认为图像处理项目不会涉及任何库,而是您自己编写图像处理过滤器和其他运算符 - 这就是它的本质。您很可能会使用算法库来加快计算速度。图像处理项目不是软件项目;相反,这是一个工程项目,使用库会完全破坏其目的。当然,这是我的拙见。
I would suggest reading a good book. Image processing is not a programming field - it's an engineering field and it involves mathematics and signal processing knowledge and intuition. The Gonzalez and Woods Image Processing is quite good and doesn't require a vast knowledge of signal processing before you start reading it. The bottom line is you don't learn image processing like you learn a new programming language; you learn it like a completely new subject that just happens to involve coding. To break this up into answers to your questions,
Image processing is a discipline of digital signal processing which is itself at an intersection of computer science and applied mathematics. It involves pixel-based image operations for purposes of image enhancement (color and contrast correction, denoising, deblurring), visual effects (spatial distortion, morphing, color-substitution), artificial vision (feature extraction, texture segmentation, pattern identification, spatial perception). There are also many narrowly applied areas of image processing such as RADAR image processing, medical image processing, etc.
The book I mentioned above is really a great read. If it's a bit pricey for you, I always find it useful going to Amazon and searching for an inexpensive older edition used book on the subject with a five star rating. Never failed me yet. Beware of getting books that are too old though.
There are plenty of libraries for the task, Boost/CImg are some of them, and it really depends on the platform you're coding for. However, I would think that an image processing project would not involve any libraries, instead you would be writing image processing filters and other operators yourself -- that's the essence of it. You would very likely use algorithm libraries though for faster computation. A project in image processing is not a software project; rather, it's an engineering project and using a library would kill the purpose completely. That is in my humble opinion, of course.
回答 3:CImg 可能是快速开始的不错选择。
Answer to 3.: CImg might be a good choice to start quickly.
图像处理与数学有很多关系,特别是矩阵操作,在更高级的处理中,傅里叶变换。
图像处理的基本定义是图像处理,无论处理是什么(颜色处理、特征提取、增强……)。图像处理不同于计算机图形学(2d 和 3d)
我假设访问您当地的大学图书馆,他们应该有关于图像处理、算法和所有这些爵士乐的现有参考资料。你必须(与你的大学教授/顾问一起)决定你想要探索图像处理的哪一部分。
看看 ImageMagick 库(以及其他库),它提供了一个很好的包来开始学习图像处理;源代码可用)。
最大限度。
Image processing is a lot about math, and is particular matrix manipulations and in more advanced processing, Fourrier transformation.
image processing is at its basic definition, image manipulation, whatever the manipulations are (either color manipulation, feature extractions, enhancements, ... ). Image processing is different than computer graphics (2d and 3d)
I would assume visit your local college library, they should have existing reference for image processing, algorithms and all that jazz. You have to decide (with your college professor/adviser) what part of image processing you want to explore.
Have a look at the ImageMagick libraries (among others), it offer a good package to start learning about image processing; source code is available).
Max.
虽然老了,我还是想数字图像处理 是一个不错的入门选择(了解常用技术的要点),但恕我直言,您不应该学习 C++;具有良好图像处理工具箱(如 MATLAB)的高级语言比尝试算法要好得多(有时需要大量使用复杂的数值方法)。
Altough old, I trink Digital Image Processing by K. Pratt is a good choice to start (to get a gist of common techniques), but imho you shouldn't learn with C++; a high level language with good image processing toolbox (like MATLAB) is far better to try algorithms (whic sometimes need heavy use of complex numerical methods).