opencv 2 学习笔记1

来源:互联网 发布:在线数据库设计 编辑:程序博客网 时间:2024/05/16 00:38

虽然以前用过opencv, 但那是本科做机器人的时候的事情了, 那时候用的还是opencv1.0的库, 就是那个到处都带着cv前缀的那个。现在准备转投opencv2.0,虽然,相关的操作用matlab是没有问题的, 可是毕竟学了这么多年C/C++, 实验室还是和图像处理相关的, 以后出去找工作, 说起来要是连opencv也不会, 那实在是太丢人了, 于是准备开始花上一段时间补习一下opencv的基本操作。

我们用的参考书是<< opencv2 计算机视觉编程攻略 >>

这次主要实践的是 imread, imshow, puttext, 以及ROI操作
实验发现, ROI操作中, roi 区域的图像格式一定要和 logo图像格式相同,才能显示效果, 否则是没有效果的23333

#include <opencv.hpp>#include <string>#include <iostream>using namespace std;using namespace cv;int main(int argc, char *argv[]){    // 配置环境    string fileFolder = "E:/system dir/Desktop/QT/opencv2 computer vision/Opencv2/images/chap 1 ustc/";    string background = fileFolder + "ustc2.jpg";    string logo = fileFolder + "ustc.jpg";    // 载入src 和 logo    Mat m_src = imread(background);    Mat m_logo = imread(logo);    // 验证输入    if (m_src.empty() || m_logo.empty()){        cerr << "failed to load images" << endl;        return EXIT_FAILURE;    }    // 缩放    resize(m_logo, m_logo, Size(0, 0), 0.5, 0.5);    // 二值化反转    threshold(m_logo, m_logo, 150, 255, CV_THRESH_BINARY_INV);    // roi    Mat roi = m_src(Range(m_src.rows - m_logo.rows, m_src.rows),                   Range(m_src.cols - m_logo.cols, m_src.cols));    // mask 0 无效, 1 覆盖    Mat mask(m_logo);    m_logo.copyTo(roi, mask);    // 显示文字    putText(m_src, "ustc 2015.10.18 by zhyh2010", Point(20, m_src.rows - 20),            FONT_HERSHEY_COMPLEX, 1,            Scalar(0), 2, CV_AA);    // 显示    imshow("src", m_src);    waitKey();    return EXIT_SUCCESS;}

显示效果:
这里写图片描述

0 0
原创粉丝点击