zoukankan      html  css  js  c++  java
  • OpenCV3编程入门笔记(2)计时函数、感兴趣区域RIO、分离/混合通道

    11     绘制直线的line函数 DrawLine(Mat img, Pont start, Point end);

             绘制椭圆的ellipse函数 DrawEllipse(Mat img, double angle) 其中angle为椭圆旋转角度

             绘制矩形的rectangle函数 DrawRectangle

             绘制原的circle函数 DrawFilledCircle(Mat img, Point center)

    绘制填充的多边形的fillpoly函数 DrawPolygon(Mat img)

    12     计时函数 getTickCount和getTickFrequency

             getTickCount表示CPU自某个事件以来走过的时钟周期数

             getTickFrequency表示一秒钟所走的时钟周期数

             double time0 = static_cast<double>(getTickCount());记录起始时间

             time0 = ((double)getTickCount()-time0)/getTickFrequency(); 得出运行时间

    13     感兴趣区域:RIO

             也就是从图像中选择的一个图像区域,这个区域是图像分析所关注的重点,有两个方法:

    1. 使用矩形区域Rect,指定矩形的左上角坐标和矩形的长度和宽度:

    Mat imageRIO = image(Rect(100,200,logo.cols,logo.rows));

    1. 指定感兴趣行或列的范围(Range),Range是指从起始索引到终止索引的一连段连续序列:

    imageRIO  = image(Range(100,100+logo.rows),Range(200,200+logo.cols));

    例子:(其中logoImage.copyTo是将mask内容复制到imageRIO1中,相似函数addWeight());

    #include "stdafx.h"

    #include <opencv2/opencv.hpp>

    using namespace cv;

    using namespace std;

    int main()

    {

             Mat srcImage = imread("C:/Users/Administrator/Pictures/timg.jpg");

             Mat dstImage;

             int rowNumber = srcImage.rows;

             int colNumber = srcImage.cols;

             Mat imageRIO = srcImage(Rect(100,200,150,350));

             imshow("3",imageRIO);

             imwrite("图3.jpg",imageRIO);

     

             //waitKey(100);

             cvtColor(srcImage,dstImage,CV_BGR2GRAY);

             imwrite("图1.jpg",srcImage);

             Mat logoImage = imread("图3.jpg");

             if (!logoImage.data)

             {

                       printf("读取图片失败 ");

                       return false;

             }

             Mat imageRIO1 = srcImage(Rect(100,200,imageRIO.rows,imageRIO.cols));

             Mat mask = imread("图1.jpg");

             logoImage.copyTo(imageRIO1,mask);

             imshow("1",srcImage);

             imshow("2",dstImage);

             waitKey(0);

             return 0;

    }

     

    14     分离颜色通道 split 多通道混合 merge

             split(srcImage,channels);// 通道分离

             imageBlueChannel = channels.at(0);

             imageGreenChannel= channels.at(1);

             imageGreChannel = channels.at(2);

             merge(channels,mergeImage);//混合图像

  • 相关阅读:
    linux 进程等待 wait 、 waitpid
    数理逻辑量词的引入
    Android自己定义动态布局 — 多图片上传
    Dynamics CRM 2015/2016 Web API:Unbound Custom Action 和 Bound Custom Action
    iOS 9应用开发教程之显示编辑文本标签文本框
    iOS 9应用开发教程之ios9中实现按钮的响应
    iOS 9应用开发教程之使用代码添加按钮美化按钮
    iOS 9应用开发教程之ios9的视图
    iOS 9应用开发教程之定制应用程序图标以及真机测试
    iOS 9应用开发教程之编辑界面与编写代码
  • 原文地址:https://www.cnblogs.com/ggYYa/p/5661814.html
Copyright © 2011-2022 走看看