【opencv】学习笔记(1)——例5-1

本文介绍了在学习OpenCV过程中遇到的例5-1,该例程用于实现图像的模糊处理。通过调用cvPyrSegmentation()函数,发现高版本的OpenCV不兼容低版本的函数,解决办法是引入<opencv2/legacy/legacy.hpp>头文件。虽然#pragma comment(lib, "opencv_legacy244.lib")未成功解析,但注释后仍能编译通过。代码运行结果使图像呈现出类似油笔效果的模糊。" 48131203,5142673,Hadoop错误汇总与解决方案,"['Hadoop', '大数据', 'mapreduce', '故障排查']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

《learning opencv》例5-1

#include <stdio.h>
#include <cv.h>
#include <highgui.h>
#include <stdio.h>

#include <opencv2/legacy/legacy.hpp>
//#pragma comment(lib, "opencv_legacy244.lib")
//void cvPyrSegmentation( IplImage* src, IplImage* dst, CvMemStorage* storage, CvSeq** comp, int a,int b,int c );
void f(
  IplImage* src,
  IplImage* dst
) {
  CvMemStorage* storage = cvCreateMemStorage(0);
  CvSeq* comp = NULL;

  cvPyrSegmentation( src, dst, storage, &comp, 4, 200, 50 );
  int n_comp = comp->total;

  for( int i=0; i<n_comp; i++ ) {
    CvConnectedComp* cc = (CvConnectedComp*)
    cvGetSeqElem( comp, i );
    // do_something_with( cc );
  }
  cvReleaseMemStorage( &storage );
}

int main(int argc, char** argv)
{

  // Create a named window with a the name of the file.
  cvNamedWindow( "pic.jpg", 1 );
  // Load the image from the given file name.
  IplImage* src = cvLoadImage( "pic.jpg" );
  if(!src) { printf("Couldn't seem to Open %s, sorry\n","pic.jpg"); return -1;}
  IplImage* dst = cvCreateImage( cvGetSize(src), src->depth, src->nChannels);
  f( src, dst);

  // Show the image in the named window
  cvShowImage( "pic.jpg", dst );

  // Idle until the user hits the "Esc" key.
  while( 1 ) { if( cvWaitKey( 100 ) == 27 ) break; }

  // Clean up and don’t be piggies
  cvDestroyWindow( "pic.jpg" );
  cvReleaseImage( &src );
  cvReleaseImage( &dst );

}

ps:使用的例子是“pic.jpg”,原来的代码中是argv【1】,具体使用是直接替换即可

今天试了例5-1,其中cvPyrSegmentation( src, dst, storage, &comp, 4,

200, 50 );这个函数总是出问题,后来百度才知道是高版本的opencv无法兼容低

版本的函数问题,然后加两个头文件便可以解决问题,
#include <opencv2/legacy/legacy.hpp>
//#pragma comment(lib, "opencv_legacy244.lib")

其中我第二个无法解析找到,所以注释后也可以编译通过了,5-1使得图像变得模

糊化,像油笔效果


补充:

  1. typedef struct CvConnectedComp   
  2. {  
  3. double area;   //区域的面积  
  4. CvScalar value;  //区域颜色的平均值  
  5. CvRect rect;  //是一个区域的外接矩形  
  6. CvSeq * contour;   //指向另一个序列的指针  
  7. };




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值