7.RV1126-OPENCV cvtColor 和 putText

一.cvtColor

1.作用

cvtColor 是 OPENCV 里面颜色转换的转换函数。能够实现 RGB 图像转换成灰度图灰度图转换成 RGB 图像RGB 转换成 HSV 等等

2.API

CV_EXPORTS_W void cvtColor( InputArray src, OutputArray dst, int code, int dstCn = 0 );

第一个参数:输入的图像数据
第二个参数:输出的图像数据
第三个参数:颜色转换的标识符,下面是转换的图表

第四个参数:目标图像通道数,默认为 0 

 3.代码实现:图像转换

#include <opencv2/core.hpp>
#include <opencv2/opencv.hpp>
#include <opencv2/dnn.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/imgproc.hpp>
#include <iostream>

using namespace cv;
using namespace std;

int main()
{
    /********************将彩色图像转换成YUV图像*****************/
    Mat car_image = imread("car.png");//读取彩色图片

    if(car_image.empty())
    {
        printf("Can not load car_image.....\n");
        return -1;
    }

    Mat dst;
    cvtColor(car_image,dst,COLOR_BGR2YUV);//将图片从BGR格式转换成YUV格式

    imwrite("car1.png",dst);//将转换后的图片保存


    /*************将彩色图像转换成HSV图像*********************** */
    Mat car_image1 = imread("car.png");//读取彩色图片

    if(car_image1.empty())
    {
        printf("Can not load car_image1.....\n");
        return -1;
    }

    Mat dst1;

    cvtColor(car_image1,dst1,COLOR_RGB2HSV);//将图片从BGR格式转换成HSV格式

    imwrite("car2.png",dst1);//将转换后的图片保存
   
    return 0;
}

4.效果图:RGB->YUV,RGB->HSV

 二.putText

1.作用

        主要的功能是在 Mat 矩阵里面显示显示文字,也就是在图像里增加文字,类似于在图片左上角增加时间。

2.API

CV_EXPORTS_W void putText( InputOutputArray img, const String& text, Point org,
int fontFace, double fontScale, Scalar color,int thickness = 1, int lineType = LINE_8,
bool bottomLeftOrigin = false );

第一个参数:img 需要传入的图像数据
第二个参数:text 需要显示的文字
第三个参数:org 文字在图像数据中的坐标位置
第 四 个 参 数 : fontFace 字 体 类 型 , 常 用 的 字 体 类 型 如 下 : FONT_HERSHEY_SIMPLEX, FONT_HERSHEY_PLAIN,
FONT_HERSHEY_DUPLEX,FONT_HERSHEY_COMPLEX,FONT_HERSHEY_TRIPLEX,FONT_HERSHEY_COMPLEX_SMALL,FONT_HERSHEY_S,CRIPT_SIMPLEX,orFONT_HERSHEY_SCRIPT_COMPLEX,以上所有类型都可以配合 FONT_HERSHEY_ITALIC 使用,产生斜体效果
第五个参数:fontScale 字体的大小
第六个参数:color 是颜色标量,字体的显示颜色
第七个参数:thickness 是字体的粗细程度,默认为 1
第八个参数:lineType 线性,默认是 LINE_8,具体的几个如下:
第九个参数:bottomLeftOrigin 图像数据原点在左下角, Otherwise(默认 false)图像数据中原点的左上角。默认 bottomLeftOrigin= false,可能会在指定位置上往上偏一点,但不会太多。ture,就是会往下偏一点。

3.代码实现:图片上增加文字

#include <opencv2/core.hpp>
#include <opencv2/opencv.hpp>
#include <opencv2/dnn.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/imgproc.hpp>
#include <iostream>

using namespace cv;
using namespace std;

int main()
{
    Mat image = imread("zjl.jpg");//读取图片

    if(image.empty())
    {
        printf("Can not load image.....\n");
        return -1;
    }

    string str = "2025-05-01 ";//要添加的字符串

    Point bg;
    bg.x = 0;//坐标的x轴是0
    bg.y = 400;//坐标的y轴是400

    int fontFace = FONT_HERSHEY_SIMPLEX;//字体类型

    double fontScale = 5;//字体大小

    Scalar color = Scalar(0, 0, 255);//字体颜色

    int thickness = 3;//字体粗细

    putText(image, str, bg, fontFace, fontScale, color, thickness);//添加文字

    imwrite("zjl1.jpg", image);//保存图片
  
    return 0;
}

4.效果图:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值