【OpenCV学习】Laplace变换(视频边界检测)

简介: 作者:gnuhpc 出处:http://www.cnblogs.com/gnuhpc/ #include "cv.h" #include "highgui.h" #include #include int main(int argc , char **argv) { ...

作者:gnuhpc
出处:http://www.cnblogs.com/gnuhpc/

#include "cv.h"
#include "highgui.h"
#include <ctype.h>
#include <stdio.h>
int main(int argc , char **argv)
{
    IplImage *laplace = 0;
    IplImage *coloelaplace = 0;
    IplImage *planes[3]={0,0,0};//多个图像面
    CvCapture *capture = 0;
    if (argc==1|| (argc==2 && strlen(argv[1])==1 && isdigit(argv[1][0])))
    {
        capture = cvCaptureFromCAM(-1);
    }
    else if(argc==2)
    {
        capture = cvCaptureFromAVI(argv[1]);
    }
    if (!capture)
    {
        fprintf(stderr,"Could not initialize capturing.../n");
        return -1;
    }
    cvNamedWindow("main",0);
    for (;;)
    {
        IplImage *frame=0;
        int i;
        frame = cvQueryFrame(capture);//从摄像头或者文件中抓取并返回一帧
        if (!frame)
        {
            break;
        }
        if (!laplace)
        {
            for (i=0;i<3;i++)
            {
                planes[i]=cvCreateImage(cvSize(frame->width,frame->height),8,1);
            }
            laplace=cvCreateImage(cvSize(frame->width,frame->height),IPL_DEPTH_16S,1);
            coloelaplace=cvCreateImage(cvSize(frame->width,frame->height),8,3);
        }
        cvCvtPixToPlane(frame,planes[0],planes[1],planes[2],0);
        //#define cvCvtPixToPlane cvSplit
        for (i=0;i<3;i++)
        {
            cvLaplace(planes[i],laplace,3);//计算图像planes[i]的 Laplacian 变换
            cvConvertScaleAbs(laplace,planes[i],1,0);//planes[]=ABS(laplace)
        }
        cvCvtPlaneToPix(planes[0],planes[1],planes[2],0,coloelaplace);
        //#define cvCvtPlaneToPix cvMerge
       
        coloelaplace->origin=frame->origin;
       
        cvShowImage("main",coloelaplace);
        if (cvWaitKey(10)>=0)
        {
            break;
        }
    }
   
    cvReleaseCapture(&capture);
    cvDestroyWindow("main");
    return 0;
}

 

作者:gnuhpc
出处:http://www.cnblogs.com/gnuhpc/


               作者:gnuhpc
               出处:http://www.cnblogs.com/gnuhpc/
               除非另有声明,本网站采用知识共享“署名 2.5 中国大陆”许可协议授权。


分享到:

目录
相关文章
|
2月前
|
计算机视觉
Opencv学习笔记(八):如何通过cv2读取视频和摄像头来进行人脸检测(jetson nano)
如何使用OpenCV库通过cv2模块读取视频和摄像头进行人脸检测,并提供了相应的代码示例。
106 1
|
2月前
|
机器学习/深度学习 计算机视觉
目标检测笔记(六):如何结合特定区域进行目标检测(基于OpenCV的人脸检测实例)
本文介绍了如何使用OpenCV进行特定区域的目标检测,包括人脸检测实例,展示了两种实现方法和相应的代码。
74 1
目标检测笔记(六):如何结合特定区域进行目标检测(基于OpenCV的人脸检测实例)
|
2月前
|
编解码 关系型数据库 计算机视觉
Opencv学习笔记(十一):opencv通过mp4保存为H.264视频
本文介绍了如何在OpenCV中通过使用cisco开源的openh264库来解决不支持H.264编码的问题,并提供了完整的代码示例。
125 0
Opencv学习笔记(十一):opencv通过mp4保存为H.264视频
|
2月前
|
算法 计算机视觉 Python
圆形检测算法-基于颜色和形状(opencv)
该代码实现了一个圆检测算法,用于识别视频中的红色、白色和蓝色圆形。通过将图像从RGB转换为HSV颜色空间,并设置对应颜色的阈值范围,提取出目标颜色的区域。接着对这些区域进行轮廓提取和面积筛选,使用霍夫圆变换检测圆形,并在原图上绘制检测结果。
88 0
|
4月前
|
计算机视觉 索引
OpenCV读取视频失败<无可用信息,未为 opencv_world453.dll 加载任何符号> cv::VideoCapture
本文介绍了解决OpenCV读取视频失败的错误,指出问题通常由视频路径错误或摄像头索引错误导致,并提供了相应的解决方法。
OpenCV读取视频失败<无可用信息,未为 opencv_world453.dll 加载任何符号> cv::VideoCapture
|
5月前
|
机器学习/深度学习 传感器 算法
OpenCV4工业缺陷检测的六种方法
OpenCV4工业缺陷检测的六种方法
|
6月前
|
机器学习/深度学习 人工智能 自然语言处理
OpenCV与AI深度学习之常用AI名词解释学习
AGI:Artificial General Intelligence (通用人工智能):是指具备与人类同等或超越人类的智能,能够表现出正常人类所具有的所有智能行为。又被称为强人工智能。
137 2
|
5月前
|
机器学习/深度学习 XML 计算机视觉
OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习库,它提供了大量的函数和工具,用于处理图像和视频数据。
OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习库,它提供了大量的函数和工具,用于处理图像和视频数据。
|
5月前
|
计算机视觉 Python
opencv 处理图像去噪的几种方法学习
OpenCV 提供了多种图像去噪的方法,以下是一些常见的去噪技术以及相应的 Python 代码示例: 均值滤波:使用像素邻域的灰度均值代替该像素的值。
70 0
|
2月前
|
计算机视觉
Opencv学习笔记(三):图像二值化函数cv2.threshold函数详解
这篇文章详细介绍了OpenCV库中的图像二值化函数`cv2.threshold`,包括二值化的概念、常见的阈值类型、函数的参数说明以及通过代码实例展示了如何应用该函数进行图像二值化处理,并展示了运行结果。
476 0
Opencv学习笔记(三):图像二值化函数cv2.threshold函数详解