网站可以做多少优化关键词/关键词优化设计

网站可以做多少优化关键词,关键词优化设计,黄冈网站推广软件ios,茶叶网站建设的优势《小白入门:OpenCV的基本用法全解析》 嗨,朋友们!之前咱们知道了OpenCV在机器视觉里就像个超级厉害的瑞士军刀,那今天咱们就来好好唠唠,**OpenCV到底该怎么用呢?**这就像是拿到了一把好剑,咱们…

 

《小白入门:OpenCV的基本用法全解析》

嗨,朋友们!之前咱们知道了OpenCV在机器视觉里就像个超级厉害的瑞士军刀,那今天咱们就来好好唠唠,**OpenCV到底该怎么用呢?**这就像是拿到了一把好剑,咱们得知道怎么耍起来才行。

一、安装OpenCV

在开始使用OpenCV之前,咱们得先把它安装好。这就像是你要做饭,得先有锅碗瓢盆一样。如果你是用pip来管理Python包的话,那安装就很简单啦,只需要在命令行里输入:

pip install opencv - python

等安装完成,你就已经迈出了使用OpenCV的第一步啦。

二、读取和显示图像

(一)读取图像

这是OpenCV最基本的操作之一,就像你打开相册看照片一样。你可以用cv2.imread()函数来读取图像文件。比如说:

import cv2# 读取图像文件,这里假设图像文件名为test.jpg,在当前工作目录下
img = cv2.imread('test.jpg')

这里的img就是一个包含了图像数据的对象啦。

(二)显示图像

读取了图像之后,咱们得看看它吧。这时候就用到了cv2.imshow()函数。不过要注意哦,这个函数显示图像的时候,需要一个窗口名字作为第一个参数,图像对象作为第二个参数。而且,为了让窗口一直显示着,我们还得加上cv2.waitKey(0),这就像是告诉程序在这里等一下,等用户按下任意键再继续。最后,看完图像后要用cv2.destroyAllWindows()来关闭所有打开的窗口。完整的代码就像这样:

import cv2img = cv2.imread('test.jpg')
cv2.imshow('My Image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

三、图像的基本处理

(一)调整图像大小

有时候图像太大了或者太小了,我们想调整一下它的大小。这时候就可以用cv2.resize()函数啦。比如说,你想把图像的宽度调整为原来的一半,高度按照原来的比例自动调整,可以这样做:

import cv2img = cv2.imread('test.jpg')
height, width = img.shape[:2]
new_width = int(width / 2)
# 这里使用cv2.INTER_AREA插值方法,适合缩小图像
resized_img = cv2.resize(img, (new_width, height), interpolation = cv2.INTER_AREA)
cv2.imshow('Resized Image', resized_img)
cv2.waitKey(0)
cv2.destroyAllWindows()

(二)转换图像颜色空间

图像有不同的颜色空间,像常见的BGR(OpenCV默认的颜色空间)、灰度图等。如果你想把彩色图像转换为灰度图,就可以用cv2.cvtColor()函数。这在很多图像处理任务里很有用,比如边缘检测的时候,灰度图处理起来更方便。

import cv2img = cv2.imread('test.jpg')
gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
cv2.imshow('Gray Image', gray_img)
cv2.waitKey(0)
cv2.destroyAllWindows()

四、图像的滤波操作

(一)高斯滤波

高斯滤波就像是给图像做了一个平滑的处理,可以让图像变得更加细腻,去除那些小噪点。用cv2.GaussianBlur()函数就可以实现啦。

import cv2img = cv2.imread('test.jpg')
# 这里的(5, 5)是高斯核的大小,0表示根据核的大小自动计算标准差
blurred_img = cv2.GaussianBlur(img, (5, 5), 0)
cv2.imshow('Blurred Image', blurred_img)
cv2.waitKey(0)
cv2.destroyAllWindows()

(二)中值滤波

中值滤波对于去除椒盐噪声特别有效。它是用像素邻域内的中值来代替中心像素的值。可以用cv2.medianBlur()函数来实现。

import cv2img = cv2.imread('test.jpg')
# 这里的5表示滤波器的大小
median_blurred_img = cv2.medianBlur(img, 5)
cv2.imshow('Median Blurred Image', median_blurred_img)
cv2.waitKey(0)
cv2.destroyAllWindows()

五、边缘检测

边缘检测就像是给图像做了一个轮廓勾勒,找出图像里物体的边缘。OpenCV里有好几种边缘检测的方法,其中最著名的是Canny边缘检测,用cv2.Canny()函数。

import cv2img = cv2.imread('test.jpg')
gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 这里的100和200是Canny算法的两个阈值
edges = cv2.Canny(gray_img, 100, 200)
cv2.imshow('Edges', edges)
cv2.waitKey(0)
cv2.destroyAllWindows()

六、绘制形状和文字

(一)绘制形状

在图像上绘制形状也是很常见的操作,比如画个矩形、圆形之类的。以画矩形为例,可以用cv2.rectangle()函数。

import cv2img = cv2.imread('test.jpg')
# 这里的(10, 10)是矩形左上角的坐标,(100, 100)是矩形右下角的坐标,(0, 255, 0)是矩形的颜色(BGR格式),2是线条的粗细
cv2.rectangle(img, (10, 10), (100, 100), (0, 255, 0), 2)
cv2.imshow('Image with Rectangle', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

(二)绘制文字

如果想在图像上添加文字,可以用cv2.putText()函数。

import cv2img = cv2.imread('test.jpg')
font = cv2.FONT_HERSHEY_SIMPLEX
# 这里的'Hello World'是要写的文字,(10, 500)是文字的起始坐标,1是字体大小,(255, 255, 255)是文字的颜色(白色),2是线条粗细
cv2.putText(img, 'Hello World', (10, 500), font, 1, (255, 255, 255), 2)
cv2.imshow('Image with Text', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

七、总结

好啦,朋友们,上面这些就是OpenCV的一些基本用法啦。从读取和显示图像,到图像的基本处理、滤波、边缘检测,再到绘制形状和文字,这些都是构建更复杂机器视觉应用的基础。就像盖房子,先把砖头、水泥这些基础材料准备好,才能盖起高楼大厦。

小伙伴们,你们有没有试着用OpenCV做一些小的图像处理项目呢?或者在使用过程中遇到了什么问题呢?欢迎在评论区留言讨论哦。

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/73262.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

汇川EASY系列之以太网通讯(MODBUS_TCP做从站)

汇川easy系列PLC做MODBUS_TCP从站,不需要任何操作,但是有一些需要知道的东西。具体如下: 1、汇川easy系列PLC做MODBUS_TCP从站,,ModbusTCP服务器默认开启,无需设置通信协议(即不需要配置),端口号为“502”。ModbusTCP从站最多支持31个ModbusTCP客户端(ModbusTCP主站…

在 Offset Explorer 中配置多节点 Kafka 集群的详细指南

一、是否需要配置 Zookeeper? Kafka 集群的 Zookeeper 依赖性与版本及运行模式相关: Kafka 版本是否需要 Zookeeper说明0.11.x 及更早版本✅ 必须配置Kafka 完全依赖 Zookeeper 管理元数据2.8 及以下版本✅ 必须配置Kafka 依赖外置或内置的 Zookeeper …

前端-选中pdf中的文字并使用,显示一个悬浮的翻译按钮(本地pdfjs+iframe)不适用textlayer

使用pdfjs移步– vue2使用pdfjs-dist实现pdf预览(iframe形式,不修改pdfjs原来的ui和控件,dom层可以用display去掉一部分组件) 方案1:获取选择文本内容的最前面的字符坐标的位置(这种写法会导致如果选择超出…

生活电子常识-deepseek-r1本地化部署+ui界面搭建

前言 deepseek-r1 14b模型,32b模型部署在本地电脑上也能实现非常好的性能。 因此有兴趣研究了下如何在本地部署。 同时最新流行mauns工作流,他们提供一句话实现网页端任意应用的能力。实际上,你也可以用本地的模型来实现离线的ai工作流功能。…

mac丝滑安装Windows操作系统【丝滑简单免费】

mac丝滑安装Windows操作系统【丝滑&简单&免费】 记录mac丝滑安装windows系统1、安装免费版 VMware fusion 132、安装Windows镜像文件3、跳过联网安装(完成1后将2拖入1 点点点 即可来到3的环节)4、 安装vmware 工具【非常重要,涉及联网…

基于Spring Boot的企业内管信息化系统的设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/同行前辈交流合作✌。 技术范围:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:…

001-JMeter的安装与配置

1.前期准备 下载好JMeter : https://jmeter.apache.org/download_jmeter.cgi 下载好JDK : :Java Downloads | Oracle 中国 下载图中圈蓝的JMeter和JDK就行,让它边下载,我们边往下看 2.为什么要下载并安装JDK ? JMeter 是基于 Java 开发的工具&#…

第2.2节 Android Jacoco插件覆盖率采集

JaCoCo(Java Code Coverage)是一款开源的代码覆盖率分析工具,适用于Java和Android项目。它通过插桩技术统计测试过程中代码的执行情况,生成可视化报告,帮助开发者评估测试用例的有效性。在github上开源的项目&#xff…

SQL注入(SQL Injection)攻击原理与防御措施

SQL是一种代码注入技术,可使攻击者修改应用程序向数据库提供的查询。 迄今为止,最常见和最严重的应用 程序安全威胁总是隐藏在与数据库有某些连接的网络应用 程序中。 通过这种 SQL 注入,攻击者可以绕过登录程序,获取、更改甚至更…

LVS的 NAT 模式实现 3 台RS的轮询访问

使用LVS的 NAT 模式实现 3 台RS的轮询访问 1.配置 RS(NAT模式)2. 配置 LVS 主机(仅主机、NAT模式)2.1 配置仅主机网卡(192.168.66.150/24 VIP )2.2 配置 NAT 网卡(192.168.88.6/24 DIP&#xff…

nacos-actuator漏洞

1、nacos配置文件添加以下配置 vim application.properties# 添加以下配置项 management.endpoints.enabled-by-defaultfalse management.server.port-12、重启Nacos systemctl restart nacos3、验证 打开地址http://ip:port/nacos/actuator查看是否有敏感信息输出&#xff0…

Jboss漏洞再现

一、CVE-2015-7501 1、开环境 2、访问地址 / invoker/JMXInvokerServlet 出现了让下载的页面,说明有漏洞 3、下载ysoserial工具进行漏洞利用 4、在cmd运行 看到可以成功运行,接下来去base64编码我们反弹shell的命令 5、执行命令 java -jar ysoserial-…

Android平台毫秒级低延迟HTTP-FLV直播播放器技术探究与实现

一、前言 在移动互联网蓬勃发展的今天,视频播放功能已成为众多Android应用的核心特性之一。面对多样化的视频格式和传输协议,开发一款高效、稳定的视频播放器是许多开发者追求的目标。FLV(Flash Video)格式,尽管随着H…

组件日志——etcd

目录 一、简介 二、安装【Ubuntu】 安装etcd 安装CAPI 三、写一个示例 3.0写一个示例代码 3.1获取一个etcd服务 3.2获取租约(写端操作) 3.3使用租约(写端操作) 3.4销毁租约(写端操作) 3.5获取etcd服务中的服务列表(读端操作) 3.6监听状态变化(读端操作) 一、简介 Et…

python网络爬虫开发实战之网页数据的解析提取

目录 1 XPath的使用 1.1 XPath概览 1.2 XPath常用规则 1.3 准备工作 1.4 实例引入 1.5 所有节点 1.6 节点 1.7 父节点 1.8 属性匹配 1.9 文本获取 1.10 属性获取 1.11 属性多值匹配 1.12 多属性匹配 1.13 按序选择 1.14 节点轴选择 2 Beautiful Soup 2.1 简介…

理解操作系统(一)冯诺依曼结构和什么是操作系统

认识冯诺依曼系统 操作系统概念与定位 深⼊理解进程概念,了解PCB 学习进程状态,学会创建进程,掌握僵⼫进程和孤⼉进程,及其形成原因和危害 1. 冯诺依曼体系结构 我们常⻅的计算机,如笔记本。我们不常⻅的计算机&am…

Tomcat常见漏洞攻略

一、CVE-2017-12615 漏洞原理:当在Tomcat的conf(配置⽬录下)/web.xml配置⽂件中添加readonly设置为false时,将导致该漏洞产 生,(需要允许put请求) , 攻击者可以利⽤PUT方法通过精心构造的数据包…

Linux上位机开发实战(camera视频读取)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 关于linux camera,一般都是认为是mipi camera,或者是usb camera。当然不管是哪一种,底层的逻辑都是v4l2&#x…

Python实现deepseek接口的调用

简介:DeepSeek 是一个强大的大语言模型,提供 API 接口供开发者调用。在 Python 中,可以使用 requests 或 httpx 库向 DeepSeek API 发送请求,实现文本生成、代码补全,知识问答等功能。本文将介绍如何在 Python 中调用 …

山东大学数据结构课程设计

题目:全国交通咨询模拟系统 问题描述 处于不同目的的旅客对交通工具有不同的要求。例如,因公出差的旅客希望在旅途中的时间尽可能地短,出门旅游的旅客则期望旅费尽可能省,而老年旅客则要求中转次数最少。编织一个全国城市间的交…