OpenCV [c++](图像处理基础示例小程序汇总)
OpenCV [c++](图像处理基础示例小程序汇总)
推荐 原创
NCUTer 2023-04-04 14:18:49
文章标签 Image 图像处理 文章分类 计算机视觉 人工智能 在51CTO的第一篇博文 阅读数1467
一、图像读取与显示
#include<opencv2/opencv.hpp>
#include<iostream>using namespace cv;
using namespace std;int main()
{string path = "Resources/lambo.png";//图片的路径名Mat img = imread(path);//将图片加载后赋值到图像变量img中//if (path.empty()) { cout << "file not loaded" << endl; }//检查文件是否打开 没打开时执行打印语句//namedWindow("Image", WINDOW_FREERATIO);//创建一个名为Image的可调节的窗口imshow("Image", img);//创建一个窗口来显示图像imgwaitKey(0);//不断刷新图像return 0;
}
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- waitKey()函数的功能是不断刷新图像,频率为delay,单位是ms。
- delay为0时,则会一直显示这一帧。
- delay不为0时,则在显示完一帧图像后程序等待“delay"ms再显示下一帧图像。
二、图像预处理[高斯滤波、canny边缘检测、膨胀腐蚀]
#include <opencv2/opencv.hpp>
#include <iostream>using namespace cv;
using namespace std;void main() {string path = "Resources/test.png";Mat img = imread(path);Mat imgGray,imgBlur,imgCanny,imgDil,imgErode;//将照片转换为灰度cvtColor(img, imgGray, COLOR_BGR2GRAY);//高斯模糊GaussianBlur(imgGray, imgBlur, Size(3, 3), 3, 0);//Canny边缘检测器 一般在使用Canny边缘检测器之前会做一些模糊处理Canny(imgBlur, imgCanny, 25, 75);//创建一个可以使用膨胀的内核Mat kernel = getStructuringElement(MORPH_RECT, Size(3, 3));//图像膨胀dilate(imgCanny, imgDil, kernel);//图像侵蚀erode(imgDil, imgErode, kernel);//结果呈现imshow("Image", img);imshow("Image Gray", imgGray);imshow("Image Blur", imgBlur);imshow("Image Canny", imgCanny);imshow("Image Dilation", imgDil);imshow("Image Erode", imgErode);waitKey(0);
}
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
- 26.
- 27.
- 28.
- 29.
- 30.
- 31.
- 32.
- 33.
_图像处理](https://img-blog.csdnimg.cn/img_convert/06e5357f1ac207ebc823c13518f6d915.png)
Canny 边缘检测
Canny(imgBlur, imgCanny, 25, 75);
- 1.
第3和第4个参数分别代表底阈值和高阈值,其中底阈值常取高阈值的1/2或1/3
_Image_02](https://img-blog.csdnimg.cn/img_convert/cd2cf129f2323a643d4c6552b529e2df.png)
三、图像裁剪
#include <opencv2/opencv.hpp>
#include <iostream>using namespace cv;
using namespace std;void main() {string path = "Resources/test.png";Mat img = imread(path);Mat imgResize,imgCrop;//调整图像大小//cout << img.size() << endl;//查看原图像的大小//resize(img, imgResize, Size(640, 480));//按自定义的宽度与高度缩放resize(img, imgResize, Size(),0.5,0.5);//按比例缩放//图像裁剪Rect roi(200, 100, 300, 300);//前面两个参数为距左上原点的x方向与y方向的距离,后两个参数为延伸的x,y长度imgCrop = img(roi);imshow("Image", img);imshow("Image Resize", imgResize);imshow("Image Crop", imgCrop);waitKey(0);}
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
- 26.
void cv::resize(InputArray src, OutputArray dst, Size dsize, double fx=0, double fy=0, int interpolation = INTER_LINEAR)
调整图像的大小。函数 resize 将图像 src 的大小缩小到或最大到指定的大小。请注意,不考虑初始 dst 类型或大小。相反,大小和类型是从 src、dsize、fx 和 fy 派生的。
_Image_03](https://img-blog.csdnimg.cn/img_convert/cfb68c87c97daaecc89dda2a9d3cfcc9.png)
四、绘制形状和添加文本
#include <opencv2/opencv.hpp>
#include <iostream>using namespace cv;
using namespace std;int main()
{//Blank ImageMat img(512, 512, CV_8UC3, Scalar(255, 255, 255));circle(img, Point(256, 256), 155, Scalar(0, 69, 255), FILLED);rectangle(img, Point(130, 226), Point(382, 286), Scalar(255, 255, 255), -1);line(img, Point(130, 296), Point(382, 296), Scalar(255, 255, 255), 2);putText(img, "Murtaza's Workshop", Point(137, 262), FONT_HERSHEY_DUPLEX, 0.95, Scalar(0, 69, 255), 2);imshow("Image&#相关文章:
OpenCV [c++](图像处理基础示例小程序汇总)
OpenCV [c++](图像处理基础示例小程序汇总) 推荐 原创 NCUTer 2023-04-04 14:18:49 文章标签 Image 图像处理 文章分类 计算机视觉 人工智能 在51CTO的第一篇博文 阅读数1467 一、图像读取与显示 #include<opencv2/opencv.hpp> #include<iostream>using…...
集成多元算法,打造高效字面文本相似度计算与匹配搜索解决方案,助力文本匹配冷启动[BM25、词向量、SimHash、Tfidf、SequenceMatcher]
搜索推荐系统专栏简介:搜索推荐全流程讲解(召回粗排精排重排混排)、系统架构、常见问题、算法项目实战总结、技术细节以及项目实战(含码源) 专栏详细介绍:搜索推荐系统专栏简介:搜索推荐全流程讲解(召回粗排精排重排混排)、系统架构、常见问题、算法项目实战总结、技术…...
Qt实现图片旋转的几种方式(全)
目录 一、用手搓(QPainter) 二、使用 QGraphicsView 和 QGraphicsPixmapItem 三、使用 QTransform 实现图像旋转 四、利用 OpenGL 实现旋转图像的效果有几种不同的方法,其中常见的包括: 手动旋转绘制: 使用 QPaint…...
常见面试题-Redis持久化策略
谈谈Redis 的持久化策略? 参考文章: Redis 持久化机制演进与百度智能云的实践 Redis的确是将数据存储在内存的,但是也会有相关的持久化机制将内存持久化备份到磁盘,以便于重启时数据能够重新恢复到内存中,避免数据丢…...
一文搞懂什么是 GNU/Linux 操作系统
Author:rab 目录 前言一、UNIX二、Linux三、GNU 前言 你是否经常看见或听说过这么一句话:这是一个类 Unix 的 GNU/Linux 操作系统,你是怎么理解这句话的呢?想要搞懂这句话的含义,你需要了解以下三点基本常识。 一、U…...
sql注入 [极客大挑战 2019]LoveSQL 1
打开题目 几次尝试,发现输1 1",页面都会回显NO,Wrong username password!!! 只有输入1,页面报错,说明是单引号的字符型注入 那我们万能密码试试能不能登录 1 or 11 # 成功登录 得到账号…...
验证码 | 可视化一键管控各场景下的风险数据
目录 查看今日验证数据 查看未来趋势数据 验证码作为人机交互界面经常出现的关键要素,是身份核验、防范风险、数据反爬的重要组成部分,广泛应用网站、App上,在注册、登录、交易、交互等各类场景中发挥着巨大作用,具有真人识别、身…...
问题解决:Ubuntu18.04下nvcc -V指令可用,/usr/local/下却没有cuda文件夹,原因分析及卸载方法
问题描述 今天要运行一个程序,需要CUDA版本高于10.0,我的电脑无法运行,于是开始检查 首先使用nvidia-smi与nvcc -V指令 能够看出来,当前显卡驱动适合的CUDA版本为12.1,而本机安装的版本是9.1.85,那么就需…...
uniapp+vue3使用pinia,安卓端报错白屏
报错内容: reportJSException >>>> exception function:createInstanceContext, exception:white screen cause create instanceContext failed,check js stack ->at useStore2 (app-service.js:1487:15)at (app-service.js:1714:17)at (app-serv…...
OpenCV图像处理、计算机视觉实战应用
OpenCV图像处理、计算机视觉实战应用 专栏简介一、基于差异模型模板匹配缺陷检测二、基于NCC多角度多目标匹配三、基于zxing多二维码识别四、基于tesseract OCR字符识别 专栏简介 基于OpenCV C分享一些图像处理、计算机视觉实战项目。不定期持续更新,干货满满&…...
MySQL 事务的底层原理和 MVCC(一)
在事务的实现机制上,MySQL 采用的是 WAL(Write-ahead logging,预写式日志)机制来实现的。 在使用 WAL 的系统中,所有的修改都先被写入到日志中,然后再被应用到系统中。通常包含 redo 和 undo 两部分信息。 …...
vue3中使用全局自定义指令和组件自定义指令
这篇文章会教大家如何实现全局自定义指令和组件自定义指令 📓全局自定义指令和组件自定义指令的区别,除了写法不同和作用不同,其他的包括生命周期的使用方法都是一致的,全局自定义指令在main.ts中注册后整个项目都可以使用&#x…...
JVM 堆外内存详解
Java 进程内存占用除了JVM 运行时数据区,还有直接内存(Direct Memory)区域及 JVM 程序自身也会占用内存 直接内存(Direct Memory)区域:直接内存通过使用Native堆外内存来存储数据,这意味着数据…...
数据库的基本概念以及MySQL基本操作
一、数据库的基本概念 1、数据库的组成 数据:描述事物的符号记录 包括数字,文字、图形、图像、声音、档案记录等 以“记录”形式按统一格式进行存储 表:将不同的记录组织在一起,用来存储具体数据 数据库: 表的集合…...
【Docker】Docker安装Nginx配置静态资源
1.下载镜像 2.创建nginx配置文件 3.创建nginx容器运行 4.配置nginx静态资源 1.下载镜像 Dockerhub官网:Docker docker pull nginx docker pull nginx下载最新版本 默认latest 下载指定版本docker pull nginx:xxx 2.创建nginx配置文件 启动容器之前要创建nginx…...
【码神之路】【Golang】博客网站的搭建【学习笔记整理 持续更新...】
介绍 一个用原生GO开发的博客网站,涉及Golang Web开发、Web服务器搭建和HTTP请求处理、模板与静态资源处理等 技术栈 后端:Go、Go并发机制前端:HTML模版链接直达 Golang搭建博客网站的学习视频 注:这里我只记录我实质✅学习到…...
Win10 电源选项那选择“关闭显示器“为1分钟,1分钟后就锁屏了?怎么才能关闭显示器后不锁屏
环境: Win10专业版 问题描述: Win10 电源选项那选择"关闭显示器"为1分钟,1分钟后就锁屏了?怎么才能关闭显示器后不锁屏 解决方案: 方法一 更改注册表可以实现关闭显示器而不锁屏的效果。请按照以下步骤…...
虚拟机centos设置网络模式(桥接|NAT)
前言 桥接模式是通过物理网卡直接与外部网络建立联系的,而NAT模式则是通过虚拟网卡VMnet1或VMnet8通过宿主机共享IP与外部建立网络关系当需要将虚拟机资源共享给局域网用户使用时,宜采用桥接模式;当需要保护虚拟机资源,确保只能由…...
MySQL 8.2 Command Line Client打开时一闪而过闪退问题
MySQL8.2安装成功后,发现打开MySQL 8.0 Command Line Client时出现一闪而过,打不开的情况。 解决方案: 1、打开MySQL 8.2 Command Line Client文件位置 2、右键选择属性 3、复制它的目标 4、我复制下来的目标路径是这样的,"…...
【NI-RIO入门】CompactRIO介绍及环境安装
CompactRIO是什么? CompactRIO系统提供了高处理性能、传感器专用I/O和紧密集成的软件工具,使其成为工业物联网、监测和控制应用的理想之选。实时处理器提供可靠,可预测的行为,而FPGA在需要高速逻辑和精确定时的较小任务上表现出色…...
云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?
大家好,欢迎来到《云原生核心技术》系列的第七篇! 在上一篇,我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在,我们就像一个拥有了一块崭新数字土地的农场主,是时…...
脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)
一、数据处理与分析实战 (一)实时滤波与参数调整 基础滤波操作 60Hz 工频滤波:勾选界面右侧 “60Hz” 复选框,可有效抑制电网干扰(适用于北美地区,欧洲用户可调整为 50Hz)。 平滑处理&…...
ubuntu搭建nfs服务centos挂载访问
在Ubuntu上设置NFS服务器 在Ubuntu上,你可以使用apt包管理器来安装NFS服务器。打开终端并运行: sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享,例如/shared: sudo mkdir /shared sud…...
高频面试之3Zookeeper
高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个?3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制(过半机制࿰…...
Linux简单的操作
ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...
智能仓储的未来:自动化、AI与数据分析如何重塑物流中心
当仓库学会“思考”,物流的终极形态正在诞生 想象这样的场景: 凌晨3点,某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径;AI视觉系统在0.1秒内扫描包裹信息;数字孪生平台正模拟次日峰值流量压力…...
【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具
第2章 虚拟机性能监控,故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令:jps [options] [hostid] 功能:本地虚拟机进程显示进程ID(与ps相同),可同时显示主类&#x…...
Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...
C# 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...
让回归模型不再被异常值“带跑偏“,MSE和Cauchy损失函数在噪声数据环境下的实战对比
在机器学习的回归分析中,损失函数的选择对模型性能具有决定性影响。均方误差(MSE)作为经典的损失函数,在处理干净数据时表现优异,但在面对包含异常值的噪声数据时,其对大误差的二次惩罚机制往往导致模型参数…...
