图像编辑入门

  2020.3.8                           周日                              阴

  今天学习的是基础入门部分。一些零碎的知识。

一,简单的几个函数。

1.flip翻转函数 flip(目标图片,结果图片,0或1或负数)//0  左右翻转 1 上下翻转 负数 上下+左右翻转

Mat result;
     flip(src,result,-1);//输入  输出 1水平翻转  0:垂直翻转  负数:水平+垂直翻转
     imshow("Pp1",src);
     imshow("Pp 2",result);

运行结果:

 2,绘图函数,如:circle,ellipse,line,rectangle等。

circle(image,Point(155,110),65,0,2);//目标图像  中心点坐标  半径  颜色  厚度

3.添加文本,putText函数。

putText(image,'This is a text",Point(40,200),FONT_HERSHEY_PLAIN,2.0,255,2);

// 目标图像  文本  文本位置 文本字体   字体大小  字体颜色  文本厚度

4.复制图像的几种方法(src为输入图像  dst为结果图像)

(1)Mat dst(src);//结果图像和原图像指向同一个数据块,原图像改变,结果图像也改变

(2)dst=src;//结果图像和原图像指向同一个数据块,原图像改变,结果图像也改变

(3)src.copyTo(dst);//结果图像是原图像的副本,不随原图像改变而改变

(4)Mat dst=src,clone();//结果图像是原图像的副本,不随原图像改变而改变

5.定义图像的几种方法。

(1)Mat src(240,320,CV_8U,100);//定义240*320的八位无符号的单通道,像素为100的图

(2)Matsrc(240,320,CV_8UC3,Scalar(0.0.255))//定义240*320的八位无符号的3通道的红色的图

(3)Mat src(Size(240,320),CV_8UC3).;

二.小知识点。

1.图像的掩码

掩码是一个8位图像,如果掩码中的某个位置的值不为0,在这个位置的操作就会起作用;如果值为0,那么对图像中的相应位置不起作用。

2.opencv头文件

opencv2\opencv.hpp包含opencv所有的头文件

三,练习。

题目:将一个小的图像,放置到大的图像上,类似于添加logo

1.过程;先读取大的图像与logo图像,然后找出放置logo的位置,然后放置输出。

代码:

 Mat src=imread("E:/photo/3.jpg");
    if (!src.data)
        {
            printf("error\n");
             return 0;
        }
Mat logo=imread("E:/photo/logo.jpg");
Mat imageROI(src,Rect(src.cols-logo.cols,src.rows-logo.rows,logo.cols,logo.rows));   logo.copyTo(imageROI);
imshow("IMAGEROI",src);

输出:(右下角即为logo)

 

 That`s all .

才发现学习还好,这个写笔记是真费劲,打字太费劲了,还要练练,明天继续。

 

posted @ 2020-03-08 14:37  旺仔!!  阅读(250)  评论(0)    收藏  举报