opencv图像处理

  • P6_195410
    了解作者
  • 496KB
    文件大小
  • zip
    文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-04-18 03:58
    上传日期
opencv图像处理,对初学者很有帮助 ,包括图像的各种处理和二值化,锐化等
opencv_pre.zip
  • opencv_pre
  • Debug
  • vc60.pdb
    100KB
  • cv_do.exe
    184.1KB
  • cv_do.obj
    18.1KB
  • opencv_pre.exe
    184.1KB
  • opencv_pre.pdb
    497KB
  • cv_do.pdb
    457KB
  • opencv_pre.ncb
    25KB
  • opencv_pre.dsp
    4.2KB
  • cv_do.cpp
    5.7KB
  • cv_do.plg
    244B
  • cv_do.opt
    47.5KB
  • opencv_pre.plg
    1.3KB
  • opencv_pre.dsw
    526B
  • cv_do.dsp
    3.4KB
  • cv_do.ncb
    41KB
  • cv_do.dsw
    516B
  • xxh.jpg
    156.7KB
内容介绍
//cxcore.lib cv.lib ml.lib cvaux.lib highgui.lib cvcam.lib #include "cv.h" #include "highgui.h" int main() { IplImage* pImg; //声明IplImage指针 IplImage* mask; IplImage* dst_inpaint; //声明修复图像指针 IplImage *dst_ehist = 0; //定原直方图均衡指针 IplImage *tmp = 0; //定义临时图像指针 IplImage *ehist = 0; //定义直方图均衡指针 IplImage *ehist_smooth=0;//定义直方图中值滤波指针 IplImage *src_back = 0; //定义源图像背景指针 IplImage *dst_gray = 0; //定义源文件去掉背景后的目标灰度图像指针 IplImage *dst_gray2= 0; //定义源文件去掉背景后的目标灰度图像指针 IplImage *dst_canny = 0; //边沿检测:canny算子 IplImage *dst_smooth = 0; //定义源文件去掉背景后的目标灰度图像指针 IplImage *dst_erode=0; IplImage *dst_dilate = 0; //定义源文件去掉背景后的目标灰度图像指针 IplImage *dst_bw1 = 0; //定义彩色二值图像指针 IplImage *dst_bw2 = 0; //定义灰度二值图像指针 IplImage *dst_contours = 0; //定义轮廓图像指针 IplConvKernel *element = 0; //定义形态学结构指针 //载入图像 if((pImg = cvLoadImage("xxh.jpg")) != 0 )//[[此处的argc==2是否需要改成argc==1?我改了之后才能运行成功。求大牛解惑]] // wmzzzz : 在"属性"|"debug"|里的command arguments 里加入参数(一个路径:要打开的文件路径) 这时 argc==2 就合理了...可以试试多加几个 { cvNamedWindow( "Image", 0);//创建窗口//CV_WINDOW_AUTOSIZE cvShowImage( "Image", pImg );//显示原图像 mask = cvCreateImage( cvGetSize(pImg), pImg->depth, 1);//中值滤波,消除小的噪声; dst_inpaint = cvCreateImage( cvGetSize(pImg), pImg->depth, pImg->nChannels);//中值滤波,消除小的噪声; cvInpaint(pImg,mask,dst_inpaint,1, 2.0 );//修复图像 cvNamedWindow( "dst_inpaint", 0 ); cvShowImage( "dst_inpaint", dst_inpaint);//显示修复图像----考虑用来修复图像--有问题 /* dst_ehist = cvCreateImage( cvGetSize(pImg), pImg->depth, pImg->nChannels);//直方图均衡 cvEqualizeHist(pImg,dst_ehist); cvNamedWindow( "dst_ehist", 0 ); cvShowImage( "dst_ehist",dst_ehist);//显示直方图均衡化原来图片*/ dst_smooth = cvCreateImage( cvGetSize(pImg), pImg->depth, pImg->nChannels);//中值滤波,消除小的噪声; cvSmooth(pImg, dst_smooth, CV_MEDIAN, 3, 0, 0, 0); //中值滤波,消除小的噪声;-------》有问题,找算子????? cvNamedWindow( "dst_smooth", 0 ); cvShowImage( "dst_smooth", dst_smooth);//显示中值滤波图像- dst_gray = cvCreateImage( cvGetSize(pImg), pImg->depth, 1);//转换成灰度图像 cvCvtColor(pImg,dst_gray,CV_BGR2GRAY); cvNamedWindow( "dst_gray", 0 ); cvShowImage( "dst_gray", dst_gray);//显示灰度图像---ok ehist = cvCreateImage( cvGetSize(dst_gray), dst_gray->depth, dst_gray->nChannels);//直方图均衡 cvEqualizeHist(dst_gray,ehist); cvNamedWindow( "ehist", 0 ); cvShowImage( "ehist", ehist);//显示灰度直方图均衡图片 dst_canny = cvCreateImage( cvGetSize(dst_gray), dst_gray->depth, dst_gray->nChannels);//直方图均衡 cvCanny(dst_gray,dst_canny,100,150,3); cvNamedWindow( "dst_canny", 0 ); cvShowImage( "dst_canny", dst_canny);//显示灰度canny图片--测试一下边沿检测练习 ehist_smooth = cvCreateImage( cvGetSize(ehist), ehist->depth, ehist->nChannels);//直方图中值滤波,消除小的噪声; cvSmooth(ehist, ehist_smooth, CV_MEDIAN, 3, 0, 0, 0); //中值滤波,消除小的噪声;-------》有问题,找算子????? cvNamedWindow( "ehist_smooth", 0 ); cvShowImage( "ehist_smooth", ehist_smooth);//显示直方图中值滤波图像- IplImage *dst_pho = cvCreateImage(cvGetSize(pImg), pImg->depth, 1); /*--‘高级形态学变换’(取小窗中‘各种形态操作’)---*/ // cvMorphologyEx(dst_gray, dst_pho, NULL, NULL, CV_MOP_OPEN, 55); //--- 小窗中‘开操作’=先最小值 ,再最大值; // cvMorphologyEx(dst_gray, dst_pho, NULL, NULL, CV_MOP_CLOSE, 13); //--- 小窗中‘闭操作’=先最大值 ,再最小值; // cvMorphologyEx(dst_gray, dst_pho, NULL, NULL, CV_MOP_GRADIENT, 12); //--- 小窗中‘梯度操作’=最大值 - 最小值; cvMorphologyEx(dst_gray, dst_pho, NULL, NULL, CV_MOP_TOPHAT, 45); //--- 小窗中‘礼帽操作’=原值 - (开操作); // cvMorphologyEx(pImg,dst_pho,NULL,NULL,CV_MOP_BLACKHAT,14); //--- 小窗中‘黑帽操作’=(闭操作)- 原值 ; cvNamedWindow("dst_pho",0); cvShowImage("dst_pho",dst_pho); dst_erode = cvCreateImage( cvGetSize(pImg), pImg->depth, 1);//进行腐蚀后膨胀图像-------》有问题,找算子????? dst_dilate = cvCreateImage( cvGetSize(pImg), pImg->depth,1); // element = cvCreateStructuringElementEx( 1, 1, 0, 0, CV_SHAPE_RECT, 0);//创建结构元素--------》找算子??? //用该结构对灰度图象进行数学形态学的开:先腐蚀后膨胀(或闭)操作后,估计背景亮度 cvDilate( dst_gray, dst_erode, NULL,113); cvErode( ehist, dst_dilate, NULL, 1);//有趣的现象加大系数,黑区变大,考虑文字的切割 cvNamedWindow( "dst_dilate", 0); cvShowImage( "dst_dilate", dst_dilate);//显示腐蚀再膨胀图像即:开(或闭)运算后图像 dst_bw1 = cvCreateImage(cvGetSize(dst_gray), dst_gray->depth, dst_gray->nChannels);//使用自适应阀值操作将图像转换为二值图像 //cvThreshold(dst_gray,dst_bw1 ,230, 255, CV_THRESH_BINARY ); //取阀值为50把图像转为二值图像 cvAdaptiveThreshold( dst_pho, dst_bw1, 255, CV_ADAPTIVE_THRESH_GAUSSIAN_C, CV_THRESH_BINARY_INV, 55,9);//55,9 cvNamedWindow( "dst_bw1", 0 ); cvShowImage( "dst_bw1", dst_bw1 );//显示对自适应阈值技术图像的二值图像 dst_bw2 = cvCreateImage( cvGetSize(dst_gray), dst_gray->depth, dst_gray->nChannels);//使用阀值操作将灰度图像转换为二值图像(单一阈值) cvThreshold(dst_pho,dst_bw2 ,40, 255, CV_THRESH_BINARY ); //取阀值为50把图像转为二值图像//210 //cvAdaptiveThreshold( dst_gray, dst_bw, 255, CV_ADAPTIVE_THRESH_MEAN_C, CV_THRESH_BINARY, 3, 5 ); cvNamedWindow( "dst_bw2", 0 ); cvShowImage( "dst_bw2", dst_bw2);//显示对灰度图像的二值图像 cvWaitKey(-1); //等待按键 cvDestroyWindow( "Image" );//销毁窗口 cvReleaseImage( &pImg ); //释放图像 return 0; } return -1; }
评论
    相关推荐
    • OPENCV图像处理
      基于opencv图像处理源代码,调试成功后和运行
    • OPENCV图像处理
      opencv1.0配置VC++6.0的一些对图像的基本操作。从图像的读取输出到图像的灰度化处理、滤波处理及阈值分割,都有相应的操作。本文件内没调用任何OpenCV的库函数,所有函数都是自己写的,含注释,可根据需求自行观看。
    • opencv图像处理
      opencv实现图像特征点提取,为后续图像识别奠定基础
    • opencv图像处理
      opencv图像处理,hough检测直线,轮廓提取等
    • opencv图像处理
      opencv入门实验,读取一张图片并经过简单的灰度变换、图像平滑等处理,最后显示出来。
    • OPENCV图像处理技术
      这是有本经典有关用OPENCV进行图像处理的图书...内容丰富,适于初学者....
    • opencv图像处理源码
      本资源是opencv图像处理源码
    • 安卓opencv图像处理
      本资源里的工程文件是使用安卓利用opencv实现灰度化、二值化、边缘提取等功能。里面包含代码,安装后,点击菜单键进行选择。
    • GaussDB_100_1.0.1-DATABASE-REDHAT-64bit.tar.gz
      guassdb100在redhat上安装包,单机部署的包,安装步骤请看我的文中介绍,经过大量实验搭建总结出来的文档