自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(124)
  • 收藏
  • 关注

原创 LeetCode 【栈】 1047. 删除字符串中的所有相邻重复项 (简单)

给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。在 S 上反复执行重复项删除操作,直到无法继续删除。在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。示例:输入:“abbaca”输出:“ca”解释:例如,在 “abbaca” 中,我们可以删除 “bb” 由于两字母相邻且相同,这是此时唯一可以执行删除操作的重复项。之后我们得到字符串 “aaca”,其中又只有 “aa” 可以执行重复项删除操作,所以最后的字符串为 “ca”。提示:1 <= S

2020-09-06 07:48:07 888

原创 LeetCode 【栈】面试题 03.04. 化栈为队 (简单)

算法小白开始刷题,本文包含了自己的思考过程,所以内容可能比较冗余,如需思路,可直接看文章后面的 优化解法。题目链接:https://leetcode-cn.com/problems/implement-queue-using-stacks-lcci/题目实现一个MyQueue类,该类用两个栈来实现一个队列。示例:MyQueue queue = new MyQueue();queue.push(1);queue.push(2);queue.peek(); // 返回 1queue.po

2020-08-07 11:51:29 301

原创 LeetCode 【栈】剑指 Offer 09. 用两个栈实现队列 (简单)

算法小白开始刷题,本文包含了自己的思考过程,所以内容可能比较冗余,如需思路,可直接看文章后面的 优化解法。题目链接:https://leetcode-cn.com/problems/yong-liang-ge-zhan-shi-xian-dui-lie-lcof/题目用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )示例 1:输

2020-08-03 18:01:53 267

原创 LeetCode 【栈】 1021. 删除最外层的括号(简单)

题目链接:https://leetcode-cn.com/problems/remove-outermost-parentheses/题目有效括号字符串为空 ("")、"(" + A + “)” 或 A + B,其中 A 和 B 都是有效的括号字符串,+ 代表字符串的连接。例如,"","()","(())()" 和 “(()(()))” 都是有效的括号字符串。如果有效字符串 S 非空

2020-07-28 21:07:21 191

原创 《数字图像处理(第三版)》 第三章 数字图像处理 笔记5 (直方图处理 - 局部直方图处理)

第 3 章 灰度变换与空间滤波3.3 直方图处理3.3.3 局部直方图处理直方图均衡 和 直方图匹配 都是全局性的。虽然这种全局方法适用于整个图像的增强,但有时对图像小区域细节的局部增强也可以使用直方图处理。局部增强 的解决方法就是在图像中每一个像素的邻域中,根据灰度级分布(或其他特性)设置变换函数。直方图处理技术很容易适应局部增强,该过程定义一个方形或矩形的邻域并把该区域的中心从一个像素移至另一个像素。在每一个位置的邻域中,该点的直方图都要被计算,并且得到的不是直方图均衡化就是规定化变换函数。

2020-07-16 18:36:38 1014 1

原创 《数字图像处理(第三版)》 第三章 数字图像处理 笔记4 (直方图处理 - 直方图匹配)

第 3 章 灰度变换与空间滤波3.3 直方图处理3.3.2 直方图匹配(规定化)直方图均衡能自动地确定变换函数,该函数寻求产生有均匀直方图的输出图像,需要自动增强时,这是一个好方法。但是在某些情况下,采用均匀直方图的基本增强并不是最好的方法。有时我们希望处理后的图像具有规定的直方图形状可能更有用,这种用于产生处理后有特殊直方图的方法称为 直方图匹配 或 直方图规定化。设连续灰度 rrr 和 zzz (视为连续随机变量),并令 pr(r)p_r(r)pr​(r) 和 pz(z)p_z(z)pz​(

2020-07-12 12:25:25 1793

原创 9. 改变图像的对比度和亮度(OpenCV 官方文档翻译)

官方文档链接:https://docs.opencv.org/4.2.0/d3/dc1/tutorial_basic_linear_transform.html目标 (Goal)本教程学习:访问像素值用 0 初始化矩阵cv::saturate_cast 的作用有关像素转换的信息提高图像亮度的实例研究理论 (Theory)注意 (Note)下面的理论解释来自 Richard Szeliski 的 《计算机视觉:算法与应用》 一书。 图像处理 (Image Processing)

2020-05-10 13:42:30 670

原创 8. 使用OpenCV添加(混合)两个图像(OpenCV 官方文档翻译)

官方文档链接:https://docs.opencv.org/4.2.0/d5/dc4/tutorial_adding_images.html目标 (Goal)线性混合使用 cv::addWeighted() 添加两个图像理论 (Theory)注意下面的解释来自 Richard Szeliski 的 《计算机视觉:算法与应用》 一书。从之前的教程中,已经知道了一些像素操作符。下...

2020-05-07 09:41:47 270

原创 7. 图像操作(OpenCV 官方文档翻译)

官方文档链接:https://docs.opencv.org/4.2.0/d5/d98/tutorial_mat_operations.html输入 / 输出 (Input / Output)图像 (Images)从文件中加载图像: cv::Mat img = cv::imread(filename);如果读取的是一个 jpg 文件,则默认情况下会创建一个 3 通道图像。如果需...

2020-05-06 17:51:05 359

原创 6. OpenCV 4.2.0 图像矩阵的掩膜运算(OpenCV 官方文档翻译)

官方文档链接:https://docs.opencv.org/4.2.0/d7/d37/tutorial_mat_mask_operations.html矩阵上的掩膜操作非常简单。目的是根据 掩膜矩阵(也成为 核)重新计算图像中每个像素的值。此掩膜矩阵中的值代表着相邻像素(和当前像素)对新像素值得影响程度。从数学的角度看,即是我们用指定的值作加权平均。测试用例 (Our test case...

2020-05-05 17:40:32 431 1

原创 5. OpenCV 4.2.0 使用 OpenCV 扫描图像、查找表和时间测量(OpenCV 官方文档翻译)

官方文档链接:https://docs.opencv.org/4.2.0/db/da5/tutorial_how_to_scan_images.html目标 (Goal)如何遍历图像的每个像素?OpenCV 矩阵值是如何存储的?如何衡量算法的性能?什么是查找表?为什么要使用它们?测试用例 (Our test case)为了实现简单的颜色还原方法,可以通过使用 uchar 的 ...

2020-05-03 13:12:55 540

原创 《数字图像处理(第三版)》 第三章 数字图像处理 笔记3 (直方图处理 - 直方图均衡)

第 3 章 灰度变换与空间滤波3.3 直方图处理  直方图是多种空间域处理技术的基础。  灰度级范围为 [0, L-1] 的数字图像的直方图是离散函数h(rk)=nkh(r_k) = n_kh(rk​)=nk​这里 rk 是第 k 级灰度,nk 是图像中灰度级为 rk 的像素个数。经常以图像中像素的总数(用 n 表示)来除它的每一个值得到归一化的直方图。因此,一个归一化的直方图由...

2020-04-29 16:39:28 3483

原创 4. OpenCV 4.2.0 Mat - 基本图像容器(OpenCV 官方文档翻译)

官方文档链接:https://docs.opencv.org/4.2.0/d6/d6d/tutorial_mat_the_basic_image_container.html目标 (Goal)我们有多种方式可以从现实世界中获取数字图像:数字照相机,扫描仪,计算机断层扫描和磁共振成像等等。在任何情况下,我们看到的都是图像。然而,当我们将其转换为数字设备时,我们记录的是图像中每个点的数值。例...

2020-04-29 16:25:15 678

原创 19. CVUI 2.7.0 鼠标和 OpenCV 窗口:Multiple OpenCV windows 【有问题 未解决】(官方文档翻译)

官网文档链接:https://dovyski.github.io/cvui/advanced-multiple-windows/多 OpenCV 窗口 (Multiple OpenCV windows)如果项目使用了多个 OpenCV 窗口,例如,显示中间结果,而且那些窗口有 cvui 组件,用户需要执行一些额外的步骤来确保 UI 组件正常工作。以下部分展示了如何在多个窗口中使用 cvui ...

2020-04-24 10:02:06 435

原创 18. CVUI 2.7.0 鼠标和 OpenCV 窗口:Mouse(官方文档翻译)

官方文档链接:https://dovyski.github.io/cvui/advanced-mouse/Mousecvui 拥有自己的鼠标 API 可以追踪鼠标点击和光标位置。与鼠标相关的所有内容都可以从 cvui::mouse() 中访问到。以下部分将详细介绍所有可用的鼠标信息。光标位置(Cursor position)用户可以通过调用 cvui::mouse() 随时查询鼠标光标...

2020-04-23 17:41:38 782

原创 17. CVUI 2.7.0 鼠标和 OpenCV 窗口:介绍(官方文档翻译)

官方文档链接:https://dovyski.github.io/cvui/advanced-introduction/鼠标和 OpenCV 窗口 (Mouse and OpenCV windows)有些应用程序需要复杂的 UI 交互,包括使用鼠标光标或多个 OpenCV 窗口。在使用多个 OpenCV 窗口(包含着 cvui 组件)或 cvui 的鼠标 API 时,唯一需要考虑的是必须指...

2020-04-22 20:53:00 309

原创 16. CVUI 2.7.0 行和列:行列嵌套(官方文档翻译)

官方文档链接:https://dovyski.github.io/cvui/layout-nesting/行列嵌套 (Nesting rows and columns)row/column 可以相互嵌套来创建更复杂的布局,而不需要单独定位组件。当一列或一行嵌套在另一列或另一行中时,它的行为类似于普通的组件:如果需要,用户不需要指明渲染它的帧或它的 (x, y) 坐标,只需要指明它的宽度和高...

2020-04-22 20:37:24 283

原创 15. CVUI 2.7.0 行和列:Rows and Columns(官方文档翻译)

官方文档链接:https://dovyski.github.io/cvui/layout-introduction/Rows and Columns 简介在构建 UI 时,最麻烦的任务之一时计算每个组件在屏幕上的位置。cvui 有一组抽象该进程的方法,因此不必考虑 (x, y) 的坐标。相反,你只需要创建 rows/columns ,cvui 将为用户安排组件。使用 beginRow() ...

2020-04-19 20:58:37 789

原创 《数字图像处理(第三版)》 第三章 数字图像处理 笔记2 (基本的灰度变换函数)

第 3 章 灰度变换与空间滤波3.2 一些基本的灰度变换函数  灰度变换是所有图像处理技术中最简单的技术,涉及s=T(r)s = T(r)s=T(r)其中 T 是把像素值 r 映射到像素值 s 的一种变换。  由于处理的是数字量,变换函数的值通常存储在一个一维阵列中,并且从 r 到 s 的映射通过查表得到。对于 8 比特环境,一个包含 T 值的可查阅的表需要有 256 个记录。...

2020-04-19 19:35:08 9597

原创 《数字图像处理(第三版)》 第三章 数字图像处理 笔记1 (灰度变换和空间滤波基础)

第 3 章 灰度变换与空间滤波引言  术语 空间域 指图像平面本身,这类图像处理方法直接操作图像中的像素。变换域 的图像处理首先把一幅图像变换到变换域,在变换域中进行处理,然后通过反变换把处理结果返回到空间域。  空间域处理主要分为 灰度变换 和 空间滤波 两类。  灰度变换 对图像的单个像素进行操作,主要以 对比度 和 阈值处理 为目的。  空间滤波 涉及改善性能的操作,如通过图像中...

2020-04-14 20:28:51 1010

原创 14. CVUI 2.7.0 组件:Iarea(官方文档翻译)

官方文档链接:https://dovyski.github.io/cvui/components/iarea/iareacvui::iarea() 创建一个报告鼠标光标活动的交互区域。函数声明如下:int iarea(int theX, int theY, int theWidth, int theHeight);theX 是 X 坐标,theY 是 Y 坐标,theWidth 是交互...

2020-04-11 22:35:41 300

原创 13. CVUI 2.7.0 组件:Sparkline(官方文档翻译)

官方文档链接:https://dovyski.github.io/cvui/components/sparkline/Sparklinecvui::sparkline() 将 std::vector 的值渲染成图,函数声明如下:void sparkline ( cv::Mat& theWhere, std::vector<double>& the...

2020-04-09 15:30:00 452

原创 12. CVUI 2.7.0 组件:Rect(官方文档翻译)

官方文档链接:https://dovyski.github.io/cvui/components/rect/Rectcvui::rect() 渲染一个矩形,可以填充也可以不填充。函数声明如下:void rect ( cv::Mat& theWhere, int theX, int theY, int theWidth, int theHeig...

2020-04-09 11:22:21 358

原创 11. CVUI 2.7.0 组件:Window 【有问题 未解决】(官方文档翻译)

官方文档链接:https://dovyski.github.io/cvui/components/window/Windowcvui::window() 渲染一个窗口(一个带有标题和主题的块),函数声明如下:void window ( cv::Mat& theWhere, int theX, int theY, int theWidth, i...

2020-04-09 10:40:43 417 2

转载 visual 2017 在类名后面有::的一定是类名或命名空间解决方法

原文链接可能1.应该不是代码问题而是编译器缓存未清理的原因。重新生成解决方案可能2.#include头文件库的使用导致类的名称和命名空间有冲突,尝试删除#include后重新编译,再考虑是否重新添加该头文件库。...

2020-04-09 09:37:52 3489

原创 10. CVUI 2.7.0 组件:Trackbar (官方文档翻译)

官方文档链接:https://dovyski.github.io/cvui/components/trackbar/Trackbarcvui::trackbar() 渲染一个数值型的 trackbar,用户可以通过单击/向左右拖动标记来增加/减少数值。函数声明如下:template <typename T>bool trackbar ( cv::Mat& th...

2020-04-08 17:31:23 664

原创 9. CVUI 2.7.0 组件:Counter (官方文档翻译)

官方文档链接:https://dovyski.github.io/cvui/components/counter/countercvui::counter() 可以为整数或双精度浮点数提供一个计算器,用户可以通过单击上下箭头来增加/减少该计数器。函数声明如下:int counter ( cv::Mat& theWhere, int theX, int the...

2020-04-05 16:58:49 350

原创 8. CVUI 2.7.0 组件:Printf (官方文档翻译)

官方文档链接:https://dovyski.github.io/cvui/components/printf/printfcvui::printf() 用于渲染一段可以使用 C printf() 样式格式化的文本。函数声明如下:void printf(cv::Mat& theWhere, int theX, int theY, const char *theFmt, ...);...

2020-04-05 13:22:13 423

原创 7. CVUI 2.7.0 组件:Text (官方文档翻译)

官方文档链接:https://dovyski.github.io/cvui/components/text/Textcvui::text() 渲染一段字符串。函数声明为:void text ( cv::Mat& theWhere, int theX, int theY, const cv::String& theText, doubl...

2020-04-05 12:11:36 605

原创 6. CVUI 2.7.0 组件:Checkbox (官方文档翻译)

官方文档链接:https://dovyski.github.io/cvui/components/checkbox/Checkboxcvui::checkbox() 渲染一个复选框,函数声明如下:bool checkbox ( cv::Mat& theWhere, int theX, int theY, const cv::String& t...

2020-04-05 11:57:12 430

原创 5. CVUI 2.7.0 组件:Image (官方文档翻译)

官方文档链接:https://dovyski.github.io/cvui/components/image/Imagecvui::image() 可以渲染一张图像,即 cv::Mat。函数声明为:void image(cv::Mat& theWhere, int theX, int theY, cv::Mat& theImage);theWhere 是要渲染图像的图像...

2020-04-05 02:08:04 342

原创 4. CVUI 2.7.0 组件:Button (官方文档翻译)

官方文档链接:https://dovyski.github.io/cvui/components/button/Buttoncvui::button() 提供一个 button (按钮) ,button 功能调用如下:bool button(cv::Mat& theWhere, int theX, int theY, const cv::String& theLabel)...

2020-04-05 00:30:16 1068 1

原创 3. CVUI 2.7.0 入门:使用 (官方文档翻译)

官方文档链接:https://dovyski.github.io/cvui/usage/下面是使用 CVUI 需要执行的几个步骤。C++ 中使用 CVUI (Using cvui in C++)1. Include cvui.h下载最新版本的 CVUI 并将 cvui.h 与项目文件放在一起。在 C++ 的一个文件中包含 cvui.h ,如下所示:#define CVUI_IMPLE...

2020-04-04 16:10:43 1318

原创 OpenCV 小记:坐标轴使用时的注意事项

在《数字图像处理》这本书中,定义的图像的坐标轴是:纵向为 x 轴,横向为 y 轴。但 OpenCV 中不同,具体如下图所示:

2020-04-02 17:48:26 326

原创 OpenCV 实战 - 图像融合(cv::copyTo())

cv::copyTo()OpenCV 中 cv::copyTo 是用来复制矩阵对象 Mat 的,可以实现直接创建一个副本,且在副本矩阵上的操作不会影响原矩阵。cv::copyTo() 声明 /** @brief Copies the matrix to another one.The method copies the matrix data to another matrix. Bef...

2020-03-29 19:37:01 4010

原创 《数字图像处理(第三版)》 第二章 数字图像基础 笔记4(像素间的一些基本关系)

2.5 像素间的一些基本关系2.5.1 相邻像素对于坐标 (x, y) 的一个像素 p 有 4 个水平和垂直的相邻像素,分别为:(x+1, y), (x-1, y), (x, y+1), (x, y-1),这个像素集称为 p 的 4 邻域,记为 N4( p )。p 的 4 个对角邻像素分别为:(x+1, y+1), (x-1, y-1), (x-1, y+1), (x+1, y-1),...

2020-03-28 19:32:17 2168 1

原创 《数字图像处理(第三版)》 第二章 数字图像基础 笔记3(图像取样和量化)

2.4 图像取样和量化  无论是哪种获取图像的方法,我们的目的都是从感知的数据生成数字图像。多数传感器的输出是连续的电压波形,这些波形的幅度和空间特性都与感知的物理现象有关。为了产生一幅数字图像,我们需要把连续的感知数据转换为数字形式。这种转换包括两种处理:取样和量化。2.4.1 取样和量化的基本概念  如图(a)显示了一幅连续图像f,目标是把它转换为数字形式。一幅图像的 x 和 y 坐标...

2020-03-21 23:51:15 4467

原创 1. CVUI 2.7.0 入门:简介 (官方文档翻译)

官方文档链接:https://dovyski.github.io/cvui/概述CVUI 是一个简单的 UI 库,构建在 OpenCV 绘图原语上。其他的 UI 库,例如 imgui,需要一个图形化的后端(比如 OpenGL)才能工作。所以如果你想在 OpenCV 应用中使用 imgui,必须先启用 OpenGL。但是使用 CVUI 就不需要这样,CVUI 只使用 OpenCV 绘图原语来...

2020-03-15 19:55:22 821

原创 3. OpenCV 4.2.0 加载、修改、保存图像(OpenCV 官方文档翻译)

官方文档链接:https://docs.opencv.org/4.2.0/db/d64/tutorial_load_save_image.htmlNoteWe assume that by now you know how to load an image using cv::imread and to display it in a window (using cv::imshow ). ...

2020-03-15 10:39:28 678

原创 2. OpenCV 4.2.0 加载和显示图像(OpenCV 官方文档翻译)

官方文档链接:https://docs.opencv.org/4.2.0/db/deb/tutorial_display_image.html目标 (Goal)加载图像( using cv::imread )创建名为 OpenCV 的窗体( using cv::namedWindow )在 OpenCV 窗体中显示图像( using cv::imshow )示例代码#inclu...

2020-03-14 21:22:06 1176

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除