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

OpenCV 基础知识总结

学习网站

  • https://zhuanlan.zhihu.com/p/483604320

命名空间

  • using namespace cv;

Mat

  • 作用
    • 创建图像(矩阵)
  • 格式
Mat image; //创建一个空图像image,大小为0
Mat image(100,100,CV_8U); //指定矩阵大小(矩阵行数/列数)、数据类型
Mat image(100,100,CV_8U, 100); //指定矩阵大小、数据类型、初始值
Mat image(100,100,CV_8U, Scalar(100)); //对于灰度图像:可以直接给出初始值,也可以使用Scalar()
Mat image(100,100,CV_8UC3, Scalar(100,100,100)); //对于三通道图像,使用Scalar()// 数据类型
// CV_8U:8位无符号型(0~255),即灰度图像
// CV_8UC3:三通道8位无符号型。三通道指:B(蓝)G(绿)R(红)。
  • 扩展
image.rows //获取图像的高度,行数
image.cols //获取图像的宽度,列数
image.channels() //获取图像的通道数,彩色图=3,灰度图=1;
image.size //获取图像的尺寸,行*列;
image.empty())  //检测image有无数据,无数据返回“真”

imread

  • 格式
    • imread(图像路径, 图像形式);
  • 示例
image = imread("1.jpg", IMREAD_COLOR);
image = imread("1.jpg", 1); 
// 参数说明
IMREAD_COLOR //(1) 加载彩色图像(默认加载形式)
IMREAD_GRAYSCALE //(0) 加载灰度模式图像
IMREAD_UNCHANGED //(-1) 加载图像,包括alpha通道

imwrite

  • 格式
    • imwrite(保存图像名称及格式,图像名称)
  • 示例
imwrite("1.png", image); //保存图像为png格式,文件名称为1

imshow

  • 格式
    • imshow(窗口名称,图像名称)
  • 示例
namedWindow("IMAGE");  //创建显示窗口。不加这行代码,也能显示,默认窗口大小不能改变
imshow("IMAGE", image);  //在窗口显示图像

cvtColor

NV12转RGB

  • 示例
cv::cvtColor(SrcYUV, RGBImage,  cv::COLOR_YUV2RGB_NV12)

I420转RGB

  • 示例
cv::cvtColor(SrcYUV, RGBImage, cv::COLOR_YUV2RGB_I420)

rectangle

  • 作用
    • 绘制一个矩形轮廓或一个填充矩形,其两个相对的角是pt1和pt2
  • 示例
cv::rectangle(image, cv::Point(100, 150), cv::Point(250, 300), cv::Scalar(0, 0, 255),4);

circle

  • 作用
    • 在图像上绘制圆
  • 示例
cv::circle(image, cv::Point(417, 143), 95, 0, 3);    //参数:图片、圆心、半径、颜色、轮廓厚度

putText

  • 作用
    • 在图像上写入文本
  • 示例
cv::putText(image, "This is a dog", cv::Point(300, 261), cv::FONT_HERSHEY_PLAIN, 2.0, 255, 3);  //参数:图片、文本内容、文本起始位置、字体类型、字体大小、字体颜色、文本厚度

Rect

  • 作用
    • 定义一个感兴趣区域
  • 示例
Mat imageROI(image, Rect(0,0,10,10));  //定义感兴趣区域

waitKey

  • 示例
waitKey(0); //暂停,保持图像显示,等待按键结束
http://www.dtcms.com/a/356242.html

相关文章:

  • 无懈可击的 TCP AIMD
  • 亚马逊季节性产品运营策略:从传统到智能化的演进
  • kimi浏览器助手-月之暗面推出的智能浏览器扩展
  • docker中的mysql有中文显示问题跟大小写区分问题?
  • Python从入门到高手9.4节-基于字典树的敏感词识别算法
  • 使用Python脚本执行Git命令
  • React 状态丢失:组件 key 用错引发的渲染异常
  • Rust 安装与运行指南
  • Custom SRP - LOD and Reflections
  • 柳州市委常委、统战部部长,副市长潘展东率队首访深兰科技集团新总部,共探 AI 赋能制造大市与东盟合作新局
  • Claude Code 完整手册:从入门、配置到高级自动化
  • 【python】相机输出图片时保留时间戳数据
  • Linux学习——sqlite3
  • 179-183动画
  • IntelliJ IDEA2025+启动项目提示 Failed to instantiate SLF4J LoggerFactory
  • 零基础json入门教程(基于vscode的json配置文件)
  • 【贪心算法】day4
  • HTML 核心标签全解析:从文本排版到媒体嵌入
  • 联想打印机2268w安装
  • 根据并发和响应延迟,实现语音识别接口自动切换需求
  • IP v 6
  • Linux下的软件编程——数据库
  • 编程与数学 03-004 数据库系统概论 06_需求分析
  • 【Flask】测试平台开发,初始化管理第一个页面开发-第三篇
  • Charles打开后,Pc电脑端浏览器显示Not implemented或没有网络
  • Linux Shell 脚本基础002
  • 使用 Java 替换和修改 PDF 文本的方法
  • 命令行操作:逻辑运算符、重定向与管道
  • TensorFlow 深度学习 | 使用子类 API 实现 Wide Deep 模型
  • 20250829_编写10.1.11.213MySQL8.0异地备份传输脚本+在服务器上创建cron任务+测试成功