当前位置: 首页 > news >正文

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轴是0bg.y = 400;//坐标的y轴是400int 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.效果图:

相关文章:

  • React知识点梳理
  • OpenCV CUDA模块图像处理------双边滤波的GPU版本函数bilateralFilter()
  • 结构型设计模式之Decorator(装饰器)
  • 进阶配置与优化:配置 HTTPS 以确保数据安全传输
  • C#面试问题81-100
  • HttpServletResponse 对象用来做什么?
  • (10)Fiddler抓包-Fiddler如何设置捕获Firefox浏览器的Https会话
  • 群晖 NAS 如何帮助培训学校解决文件管理难题
  • django入门-orm数据库操作
  • Java面试八股--08-数据结构和算法篇
  • 如何合理设计缓存 Key的命名规范,以避免在共享 Redis 或跨服务场景下的冲突?
  • 升级:用vue canvas画一个能源监测设备和设备的关系监测图!
  • RabbitMQ 监控与调优实战指南(二)
  • JAVA获取ES连接并查询所有数据
  • RabbitMQ如何保证消息可靠性
  • Linux 安装 JDK
  • rabbitMQ初入门
  • SpringBoot 系列之集成 RabbitMQ 实现高效流量控制
  • Deepseek/cherry studio中的Latex公式复制到word中
  • LeetCode 139. 单词拆分(Word Break) - 动态规划深度解析
  • 如何给自己做的网站留后门/武汉百度关键词推广
  • 中山哪里做网站/企业网站优化推广
  • 青岛网站建设设计/搭建一个网站需要多少钱?
  • 郑州有官方网站的公司/网站seo查询站长之家
  • 公司销售网站怎么做/网站注册页面
  • 中关村做网站设计的/营销方案ppt