图像处理软件开发记录(一) 系统概述

来源:互联网 发布:京东金融 知乎 编辑:程序博客网 时间:2024/05/21 10:56

专栏地址:http://blog.csdn.net/column/details/imagep.html

本系列博客主要记录Image_Lin图像处理软件的开发记录。

Image_Lin软件计划实现的功能包括:

(一)、基本图像处理(黑白、锐化、柔化、补光)

(二)、人像美容(人脸美肤)

(三)、图像特效(素描、油画、浮雕、怀旧、Lomo)

(四)、图像去雾

Image_Lin图像处理的开发工具是:QT+OpenCV


这一篇博客我主要对QT和OpenCV进行一个简单的介绍。


QT是一个跨平台的C++图形用户界面应用程序框架,首度为公众可用是在1995年5月。它最初由Haavard Nord和Eirik Chambe-Eng开发而成。当前最新的版本是Qt5.2,下载地址。

一些关于QT的教程如下:

QT 编程基础入门到精通

Qt 学习之路 2

QT 学 习 

下面,我谈谈Qt的元对象系统

Qt的主要成就之一就是使用了一种机制对C++进行了扩展,并且使用这种机制创建了独立的软件组件。这些组件可以绑定在一起,但任何一个组件对于它所要连接的组件的情况事先一无所知。

这种机制称为元对象系统(meta-object system),它提供了关键的两项技术:信号-槽以及内省(introspection)。内省功能对于实现信号与槽是必需的,并且允许应用程序的开发人员在运行时获得有关QObject子类的“元信息”,包括一个含有对象的类名以及它所支持的信号和槽的列表。这一机制也支持属性和文本翻译,并且它也为QtScript模块奠定了基础。从Qt4.2开始,可以动态添加属性。

标准C++没有对Qt的元对象系统所需要的动态元信息提供支持。Qt通过提供一个独立的moc工具解决了这个问题,moc解析Q_OBJECT类的定义并且通过C++函数提供可供使用的信息。由于moc使用纯C++来实现它的所有功能,所以Qt的元对象系统可以在任意C++编译器上工作。

这一机制是这样工作的:

  • Q_OBJECT宏声明了在每一个QObject子类中必须实现的一些内省函数:metaObject()、tr()、qt_metacall(),以及其他一些函数。
  • Qt的moc工具生成了用于由Q_OBJECT声明的所有函数和所有信号的实现。
  • 像connect()和disconnect()这样的QObject的成员函数使用这些内省函数来完成它们的工作。


OpenCV是一个基于开源发行的跨平台计算机视觉库,它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。

当前最新的版本是2.4.8,下载地址。

一些入门教程:

OpenCV学习笔记:快速入门例程

OpenCV入门指南


更多图像处理、机器视觉资源请关注 博客:LinJM-机器视觉 微博:林建民-机器视觉

0 0