学习opencv

embedded/2024/10/19 5:27:39/

三年前接触过opencv,但一直停留在调用api的阶段,对图像处理的原理没有一定的深入,今天开始想真正深入一下opencv,先写一下自己的疑惑,就当笔记了

  1. 单通道是啥意思,单通道只包含一个颜色通道,一般来说图像有三个通道,RGB,就是三原色,在opencv里单通道一般就是灰度图,每个像素只表示灰度的强弱级别大小而不是颜色。
  2. 8位单通道啥意思,就是每个像素的值用8位来表示,2的8次方-1=255,就是用0-255来表示灰度的级别,0表示黑色,255表示白色,中间的值表示过渡的颜色。
  3. 阈值是啥意思,阈值就是一个分水岭,就是一个数字,大于阈值的像素将被划为最亮色255,小于阈值的像素将被划为最暗色0.
  4. Mat::zeros(soureImage.rows, soureImage.cols, CV_8UC3);这个是创建一个rows行cols列,8位3通道全0的矩阵
  5. 以下是一个绘制图片最小外接矩形的示例:

#include <opencv2/opencv.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace std;
using namespace cv;int main() {Mat soureImage = imread("1.png",0);Mat displayImage = Mat::zeros(soureImage.rows, soureImage.cols, CV_8UC3);soureImage = soureImage > 119;//轮廓vector<vector<Point>> contours;//等级vector<Vec4i> hierarchy;//RETR_CCOMP 图像的层级分成内外两层 CHAIN_APPROX_SIMPLE用最少的点绘制出轮廓findContours(soureImage, contours, hierarchy, RETR_EXTERNAL, CHAIN_APPROX_SIMPLE);Mat colorImage;cvtColor(soureImage, colorImage, COLOR_GRAY2BGR); // 将灰度图像转换为彩色图像int index = 0;for (; index >= 0; index = hierarchy[index][0]) {Scalar color(25, 20,170);//绘制轮廓的最小外结矩形RotatedRect rect = minAreaRect(contours[index]);Point2f P[4];rect.points(P);for (int j = 0; j <= 3; j++){line(colorImage, P[j], P[(j + 1) % 4],color,2);}}imshow("contours", colorImage);waitKey(0);return 0;
}

http://www.ppmy.cn/embedded/40935.html

相关文章

[muduo网络库]——muduo库TcpConnection类,万字总结(剖析muduo网络库核心部分、设计思想)

接着之前我们[muduo网络库]——muduo库Buffer类&#xff08;剖析muduo网络库核心部分、设计思想&#xff09;&#xff0c;我们接下来继续看muduo库中的TcpConnection类。 TcpConnection类 TcpConnection类是muduo最核心的类&#xff0c;这个类主要封装了一个已建立的TCP连接&…

如何使用 iOS系统恢复软件修复 iPhone 问题

苹果公司向世界推出了他们可以拥有的最智能的手机。但即使是 iPhone 也无法避免智能手机常见的损坏和问题。您将熟悉最常见的问题。屏幕黑屏或卡在 Apple 徽标上&#xff1b;冻结或卡在恢复模式的 iPhone。但这样的问题不胜枚举&#xff0c;每天都有 iOS 用户在他们的设备中遇到…

大模型LLM之SFT微调总结

一. SFT微调是什么 在大模型的加持下现有的语义理解系统的效果有一个质的飞跃&#xff1b;相对于之前的有监督的Pre-Train模型&#xff1b;大模型在某些特定的任务中碾压式的超过传统nlp效果&#xff1b;由于常见的大模型参数量巨大&#xff1b;在实际工作中很难直接对大模型训…

K8S集群Etcd数据备份/恢复

前言&#xff1a; kubernetes使用etcd数据库实时存储集群中的数据&#xff0c;安全起见&#xff0c;一定要备份。 一、安装etcdctl 1、查看使用Etcd版本 rootmaster:~# cat /etc/kubernetes/manifests/etcd.yaml | grep image: | awk {print $2} registry.aliyuncs.com/goo…

Python sqlite3库 实现 数据库基础及应用-数据维护:请编写一个具有新增和查询两种功能的程序

目录 【第12次课】实验十数据库基础及应用2-数据维护 程序代码&#xff1a; 程序运行举例: 【第12次课】实验十数据库基础及应用2-数据维护 数据库文件有两张表&#xff0c;其中“成绩表”有三个字段:学号、课程名、成绩。请编写一个具有 新增和查询两种功能的程序: (1)当输…

M-有效算法

在赛场上&#xff0c;脑子就两个字“二分”&#xff0c;一点思路都没&#xff0c;完全不知道二分谁&#xff0c;怎么二分&#xff0c;从哪入手。隐隐约约也知道要变换公式&#xff0c;可惜没坚持这个想法。脑子里全是把k分离出来&#xff0c;赛后看了题解才知道&#xff0c;应该…

windows 10安装 docker desktop

升级 windows 10 windows 10 升级到 20H2&#xff0c;如 20H2 19045.4291。 注意&#xff1a;需返回更新&#xff0c;重启计算机&#xff0c;确保更新完整。 bios 开启虚拟化 开启cpu虚拟化功能。 windows 启用功能 启用hyper-v 启用 wsl 安装 wsl https://learn.microso…

CSS常用滤镜效果

CSS 提供了多种滤镜效果&#xff0c;可以通过 filter 属性应用于 HTML 元素。以下是一些常用的 CSS 滤镜效果&#xff1a; 一、灰度 (Grayscale) 将图像转换为灰度图像。值在 0%&#xff08;原始图像&#xff09;和 100%&#xff08;完全灰度&#xff09;之间。 filter: gra…