OPENCV-2 学习笔记

1、图像显示
#include<opencv2/opencv.hpp>
using namespace cv; //使用命名空间
void main(){
  Mat srcImage = imread('1.jpg');//载入图像
  imshow('图像标题',srcImage);//显示图像
  waitKey(0);//等待按键按下  
}
2、图像腐蚀
#include <opencv2/opencv.hpp>  
#include <opencv2/highgui/highgui.hpp>
using namespace std;
using namespace cv;
int main()
{
    Mat srcImage = imread("E:\\4.JPG");
    imshow("原图--腐蚀操作", srcImage);
    Mat element = getStructuringElement(MORPH_RECT, Size(15, 15));
    Mat dsImage;
    erode(srcImage, dsImage, element);  //腐蚀函数
    imshow("效果图", dsImage);
    waitKey(0);
    return 0;
}
3、图像模糊
#include <opencv2/opencv.hpp>  
#include <opencv2/highgui/highgui.hpp>
using namespace std;
using namespace cv;


int main()
{
    Mat srcImage = imread("E:\\4.JPG");
    imshow("原图--腐蚀操作", srcImage);

    Mat dsImage;
    blur(srcImage, dsImage, Size(7, 7)); //进行滤波操作
    imshow("效果图", dsImage);
    waitKey(0);
    return 0;
}
4、边缘检测
#include <opencv2/opencv.hpp>  
#include <opencv2/highgui/highgui.hpp>
using namespace std;
using namespace cv;

int main()
{
    Mat srcImage = imread("E:\\4.JPG");
    imshow("原图--腐蚀操作", srcImage);
    Mat dsImage,grayImage,edge;
    //创建与原图同类型和大小的矩阵dst
    dsImage.create(srcImage.size(), srcImage.type());
    //将原图转化为灰度图像
    cvtColor(srcImage, grayImage, CV_BGR2GRAY);
    //使用3*3内核降噪
    blur(grayImage, edge, Size(3, 3));
    //运行canny算子
    Canny(edge,edge,3,9,3);
    imshow("效果图", edge);
    waitKey(0);
    return 0;
}
5、读取视频或调用摄像头
int main()
{
    //初始化
    VideoCapture capture("E://1.avi");
    //调用摄像头
    //VideoCapture capture(0);
    //循环每一帧,相当一张图
    while (1) {
        Mat frame;
        capture >> frame;//存储每一帧
        imshow("视频", frame);
        waitKey(50);//50ms
    }
    return 0;
}
6、写视频文件
int main() {  

    IplImage *iplImg = cvLoadImage("/home/huanglei/wr.jpg", 1);  
    IplImage *iplImgNew = cvCreateImage(cvSize(320,240),8,3) ;  //改变图片大小适应视频  
    cvResize(iplImg,iplImgNew,CV_INTER_LINEAR) ;  
    CvVideoWriter* video = cvCreateVideoWriter("/home/huanglei/tree1.avi",  
            CV_FOURCC('P', 'I', 'M', '1'), 20,  
            cvSize(iplImgNew->width, iplImgNew->height), 1);  

    /* 
     * 逐帧读取视频,并保存到另外一个视频文件中 
     */  
    CvCapture *cap;  
    cap = cvCreateFileCapture("/home/huanglei/tree.avi");  
    IplImage *imgVideo ;  
    int q ;  
    while (imgVideo = cvQueryFrame(cap)) {  
        q = cvWriteFrame(video, imgVideo);  
    }  

    /* 
     * 在新的视频文件的末尾插入图片 
     */  
    int i;  
    for (int x = 0; x < 50; x++) {  
        i = cvWriteFrame(video, iplImgNew);  
    }  

    /* 
     * 释放指针 
     */  
    if (video) {  
        cvReleaseVideoWriter(&video);  
        cvReleaseImage(&imgVideo);  
        cvReleaseImage(&imgVideo);  
        cvReleaseImage(&iplImg);  
    }  

    return 0;  
}  
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值