opencv 2 学习笔记1

虽然以前用过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;
}

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值