注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

斗天堂

douzsh还活着

 
 
 

日志

 
 

图像处理的1些学习笔记  

2010-10-15 14:30:39|  分类: 图像基础 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

系统的重新学习图像处理的主要内容
浏览了网站http://www.aishack.in/中的tutorial,重头开始看

1、contours
  轮廓,使用了cvcontours来寻找轮廓,以及响应的轮廓面积判断函数。
 
2、阈值
 使用了cvThreshold、cvrange、cvcmp来进行阈值的设置。
 
3、颜色空间
 Grayscale,RGB,HSV,Y'CbCr
 The Y’CrCb is quite useful considering the phosphor emission characteristics of newer CRT screens. And is hence used in televisions, HDTV, etc. Plus, two of the three channels can be highly compressed without much loss in detail in the final image. This helps save bandwidth.
 The Y’ channel (luma) is basically the grayscale version of the original image. Human eye is more receptive to black and white images… so this channel isn’t compressed much. This preserves a lot of details. The Cr and Cb channels contain the colour information. They can be highly compressed.

4、生成均匀噪声
 Uniform Noise
 double uniform()
 {
     return (rand()/(float)0x7fff)-0.5;
 }
 cvGetReal2D \ cvGet2D
 简单随即噪声只是噪声模型中最简单的一种,更多噪声模型比如指数形式的、rayleigh模型等参见google
 
5、噪声模型
 概率分布函数(PDF) gamma分布 高斯分布 指数噪声分布 rayleigh噪声分布 脉冲噪声 均匀噪声
 
6、均值降噪
 多幅噪声图像取均值避免噪声
 
7、颜色归一化
 Normalized RGB R/S,G/S,B/S(S=R+G+B)
 目的:get rid of distortions caused by lights and shadows in an image 避免光照和阴影对图像产生的影响
 注意,这里会丢失信息。You’re losing information in this tranformation!
 The normalized image can be represented using only 2 bytes per pixel (as opposed to 3 bytes per pixel in RGB). Here’s how:
 R’ = R/(R+G+B)
 G’ = G/(R+G+B)
 B’ = B/(R+G+B)
 
 But you can represent B’ like this as well:
 B’ = 1-R’-G’

8、OpenCV内存管理
 http://www.aishack.in/2010/01/opencv-memory-management/
 这里介绍的很好,避免内存泄漏
 
9、模版匹配
 cvMatchTemplate(imgOriginal, imgTemplate, imgResult, CV_TM_CCORR_NORMED);
 double min_val=0, max_val=0;
  CvPoint min_loc, max_loc;
  cvMinMaxLoc(imgResult, &min_val, &max_val, &min_loc, &max_loc);
 
10、Why OpenCV? opencv vs matlab vxl
11、Install OPENCV
12、Hello world with OPENCV
13、图像滤镜
 cvErode(img, img, 0, 2); 腐蚀
 cvDilate(img, img, 0, 2); 膨胀
 cvAddS(img, cvScalar(50,50,50), img); 亮度
 cvScale(img, img, 2); 对比度
 cvNot(img, img); 反片
14、摄像头读取
15、HighGUI:Creating Interfaces
 Trackbar && mouse event in OpenCv HighGUI
 
16、DirectX的摄像头读取
 OpenCV的摄像头读取存在限制,当你要读取高质量的摄像头数据时,可以使用DX,示例如下
 #include "stdafx.h"
 #include "videoInput.h"
 #include "cv.h"
 #include "highgui.h"
 
 int main()
 {
     videoInput VI;
     int numDevices = VI.listDevices();
     int device1= 0;
     VI.setupDevice(device1);
     int width = VI.getWidth(device1);
     int height = VI.getHeight(device1);
     IplImage* image= cvCreateImage(cvSize(width, height), 8, 3);
     unsigned char* yourBuffer = new unsigned char[VI.getSize(device1)];
     cvNamedWindow("test");
     while(1)
     {
         VI.getPixels(device1, yourBuffer, false, false);
         image->imageData = (char*)yourBuffer;
         cvConvertImage(image, image, CV_CVTIMG_FLIP);
         cvShowImage("test", image);
         if(cvWaitKey(15)==27) break;
     }
 
     VI.stopDevice(device1);
     cvDestroyWindow("test");
     cvReleaseImage(&image);
 
     return 0;
 }
17、OpenCV 2.0 Install

18、霍夫变换
 原理及应用
19、圆形霍夫变换

20、像素相邻和连通性
 4邻域、d邻域(diagonal 斜)、8邻域
21、连通域标记 connected component labelling
 算法流程http://www.aishack.in/2010/03/connected-component-labelling/
 
22、Opencv的结构,CvMat结构操作

23、OpenCV中的Hough检测
 CvSeq* cvHoughLines2(CvArr* image, void* line_storage, int method, double rho, double theta, int threshold, double param1=0, double param2=0);
 CvSeq* cvHoughCircles(CvArr* image, void* circle_storage, int method, double dp, double min_dist, double param1=100, double param2=100, int min_radius=0, int max_radius=0);
 
24、Memory layout of matrices of multi-dimensional objects
 OpenCV中的存储方式:
 Things get stored from left to right, top to bottom
 Channels are always interleaved
 
 offset = (row * numCols * numChannels) + (col * numChannels) + (channel)
 
25、Efficiently accessing matrices矩阵的快速访问
 不采用cvGetReal2D的方式,采用指针方式直接访问
 
26、特征:角点
27、Harris角点检测
28、Interesting windows in the Harris Corner Detector
29、The Shi-Tomasi Corner Detector
30、OpenCV中的角点检测
 默认使用的是Shi-Tomasi方法,如果想用harris角点检测,可以参照作者的例子
 http://www.aishack.in/wp-content/uploads/2010/06/src_GoodFeaturesToTrack.zip

Subpixel
 
Others:直方图、畸变、SIFT、形态学、卷积、CCV

  评论这张
 
阅读(648)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017