Chinaunix首页 | 论坛 | 博客
  • 博客访问: 301722
  • 博文数量: 32
  • 博客积分: 665
  • 博客等级: 上士
  • 技术积分: 370
  • 用 户 组: 普通用户
  • 注册时间: 2009-07-25 11:20
文章分类

全部博文(32)

文章存档

2023年(1)

2021年(1)

2020年(2)

2018年(3)

2014年(1)

2013年(2)

2012年(9)

2011年(9)

2010年(2)

2009年(2)

分类: C/C++

2012-06-10 14:16:55


  1. #include <QCoreApplication>
  2. #include <QDebug>
  3. #include "opencv/highgui.h"
  4. #include "opencv/cvaux.h"

  5. int main(int argc, char *argv[])
  6. {
  7.   CvSize sz;

  8.   IplImage* img1 = cvLoadImage("Tulips.jpg");

  9.   sz.height = img1->height;
  10.   sz.width = img1->width;
  11.   IplImage* img2r = cvCreateImage(sz,IPL_DEPTH_8U,1);
  12.   IplImage* img2g = cvCreateImage(sz,IPL_DEPTH_8U,1);
  13.   IplImage* img2b = cvCreateImage(sz,IPL_DEPTH_8U,1);
  14.   cvSplit(img1,img2r,img2g,img2b,NULL);

  15.   cvEqualizeHist(img2r,img2r);
  16.   cvEqualizeHist(img2g,img2g);
  17.   cvEqualizeHist(img2b,img2b);

  18.   IplImage* img3 = cvCloneImage(img1);
  19.   cvMerge(img2r,img2g,img2b,NULL,img3);

  20.   cvNamedWindow("Win1",CV_WINDOW_AUTOSIZE);
  21.   cvNamedWindow("Win2r",CV_WINDOW_AUTOSIZE);
  22.   cvNamedWindow("Win2g",CV_WINDOW_AUTOSIZE);
  23.   cvNamedWindow("Win2b",CV_WINDOW_AUTOSIZE);
  24.   cvNamedWindow("Win3",CV_WINDOW_AUTOSIZE);

  25.   cvShowImage("Win1",img1);
  26.   cvShowImage("Win2r",img2r);
  27.   cvShowImage("Win2g",img2g);
  28.   cvShowImage("Win2b",img2b);
  29.   cvShowImage("Win3",img3);

  30.   cvSaveImage("img3.jpg",img3);

  31.   cvWaitKey(0);

  32.   return 5;

  33.   Q_UNUSED(argc)
  34.   Q_UNUSED(argv)
  35. }

 


对一幅整体较暗淡的彩色图像分别抽取RGB三个通道进行直方图均衡化,然后再合并。发现结果图像的色彩在各个基色通道都均衡化后的合并结果,效果在视觉上有所优化,但还存在一些蓝斑,应该是数据信息细节不足导致。
 
 
 
 
阅读(3555) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~