- 博客(1676)
- 资源 (2)
- 收藏
- 关注

原创 【计算机视觉】OpenCV 4高级编程与项目实战(Python版)【2】:操作像素
像素是构成图像的基本单位。现在看图1所示的花卉图像,这幅图看着很细腻,不过将图像的白框区域放大,会看到如图2所示的效果,细腻的图像不见了,取而代之的是一个一个的小方块,每一个小方块就是一个像素。如果从显示器的角度,像素就是显示器可以显示的最小的点。像素之所以在图2所示的图中看着像一个方块,是因为如果将图像的某个区域放大,就需要将一个像素变成多个像素,这就会造成多个相邻的像素的颜色都相同,所以看着这些像素就变成了一个个小方块。
2023-01-05 19:55:10
525
3

原创 神奇的Python property装饰器:1行代码让Python方法秒变属性
本文详细介绍了如何用property装饰器的将Python方法变成属性,以及再变成可写和可删除的属性,当然,更重要的是详细分析了property装饰器的原理,让读者不仅可以知其然,还可以知其所以然。
2021-04-16 08:47:52
3150
14

原创 【鸿蒙学院】鸿蒙(HarmonyOS)IDE迎来重大更新,新特性足以让你尖叫!
本文主要深入介绍鸿蒙IDE与编程有关的3个特性:双向预览、Java UI数据模拟和测试框架,至于其他的一些新特性,如更多的phone模板,API version的变化,可视化配置config.json等,可以参考文中的视频。
2021-04-01 16:56:13
39370
18

原创 【物联网】老程序教你一招,10行代码让超声波模块秒变声控开关
超声波只能用来测距吗?你out了,看哥教你如何只用10行代码将超声波模块改装成声控开关,perfect!
2021-03-31 08:51:59
6603
7

原创 Python编程思想【系列文章】
李宁老师已经在「极客起源」 微信公众号推出《Python编程思想》电子书,囊括了Python的核心技术,以及Python的主要函数库的使用方法。读者可以在「极客起源」 公众号中输入160442开始学习,或点击「极客起源」公众号下方的「编程思想」>「Python编程思想」
2020-05-20 08:13:10
4844
原创 ChatGPT终于被我问到胡说八道的程度了!
问:Python是强类型语言,还是弱类型语言chatgpt:Python是强类型语言。Python很少会隐式地转换变量的类型,所以Python是强类型的语言
2023-05-04 09:44:28
5750
2
原创 【计算机视觉】OpenCV 4高级编程与项目实战(Python版)【9】:计算图像均值和标准差
图像的均值表示图像整体的亮暗程度,图像的均值越大,图像整体越亮。标准差表示图像中明暗变化的程度,标准差越大,表示图像中明暗变化越明显。OpenCV提供了mean函数用于计算图像的均值,提供了meanStdDev函数用于同时计算图像的均值和标准差。
2023-03-15 21:10:02
435
原创 【计算机视觉】OpenCV 4高级编程与项目实战(Python版)【8】:图像像素统计
图像通过一定尺寸的矩阵表示,矩阵中每个元素的大小表示图像中每个像素的明暗程度。查找矩阵中的最大值就是寻找图像中灰度值最大的像素,计算矩阵的平均值就是计算图像像素的平均灰度,可以用平均灰度表示图像整体的亮暗程度。因此,针对图像矩阵数据的统计和分析,在图像处理工作中具有非常重要的意义。OpenCV集成了求取图像像素最大值、最小值、均值、标准差等函数,本节将详细介绍这些函数的使用方法。
2023-03-13 20:27:10
249
原创 【计算机视觉】OpenCV 4高级编程与项目实战(Python版)【7】:拼接图像
我们已经知道,图像是通过数组描述的,那么拼接图像其实就是拼接数组。NumPy提供了2个拼接数组的函数,分别是hstack函数和vstack函数,这两个拼接函数可以将两个数组水平和垂直拼接在一起,也就相当于将两幅图像水平和垂直拼接在一起,本节将详细讲解如何使用这两个函数水平拼接图像和垂直拼接图像。
2023-03-01 21:01:42
428
原创 【计算机视觉】OpenCV 4高级编程与项目实战(Python版)【6】:使用NumPy创建随机雪花点图像
上一篇文章演示了如何使用二维数组创建黑白图像,如果要创建彩色图像,就需要使用三维数组。例如,在BGR色彩空间创建200 × 200的彩色图像,就需要一个200 ×200 ×3的三维数组存储像素的颜色值,其中第3维可以存储3个通道的颜色值,分别是B通道、G通道和R通道。也就是我们平常说的三原色:蓝(B)、绿(G)和红(R)。
2023-02-27 21:20:45
156
原创 解决百度网盘出现“正在请求中...”的问题,绝对好使!
最近百度网盘客户端总出现“正在请求中...",尽管充的SVIP,还是这样,经过摸索,重要找到原因了,对于macOS版本百度网盘客户端,请按下面方式操作,windows版也类似。
2023-02-25 10:24:43
638
原创 【计算机视觉】OpenCV 4高级编程与项目实战(Python版)【5】:使用NumPy创建黑白同心圆图像
OpenCV中使用数组表示图像数据,不过这里的数组并不是Python数组,而是NumPy数组。NumPy是非常著名的科学计算库,可用于进行各种科学计算,由于底层使用C语言实现,所以效率非常高。本文会利用NumPy和OpenCV绘制黑白图像,包括黑白同心圆。
2023-02-15 21:44:23
442
原创 【计算机视觉】OpenCV 4高级编程与项目实战(Python版)【4】:通道详解
相信很多读者朋友对“通道”这个词已经不陌生了,一副BGR图像是由3个通道组成的,这3个通道是B通道、G通道和R通道。本节将介绍如何对通道进行拆分与合并,并达到处理图像的目的。
2023-01-27 21:23:30
801
原创 【计算机视觉】OpenCV 4高级编程与项目实战(Python版)【3】:色彩空间
在上一篇文章中,简单介绍了BGR色彩空间和RGB色彩空间,本文将介绍另外两个比较常见的色彩空间:GRAY色彩空间和HSV色彩空间。GRAY色彩空间通道指的是灰度图像,灰度图像的通常只有1个,值范围是[0, 255],一共256个灰度级别。其中0表示纯黑色,255表示纯白色。0~255之间的数值表示不同的亮度(即色彩的深浅程度)的深灰色或浅灰色。因此,一副灰度图能展示丰富的细节信息
2023-01-09 21:55:31
1339
2
原创 【计算机视觉】OpenCV 4高级编程与项目实战(Python版)【1】:图像处理基础
本系列文章会深入讲解OpenCV 4(Python版)的核心技术,并提供了大量的实战案例。这是本系列文章的第一篇,主要讲解OpenCV处理图像的基本方法,主要包括读取图像、显示图像、保存图像和获取图像的属性。
2023-01-02 22:09:18
827
原创 鸿蒙开发套件全面升级,助力鸿蒙生态蓬勃发展
2022年华为开发者大会(HDC.Together)于11月4日在东莞松山湖揭开帷幕,带来了鸿蒙生态的最新成果,展示了鸿蒙生态的全新格局。在大会主题演讲中,华为带来了多种令人震撼的技术成果,如分布式能力、原子化服务、AI、AR、地图、游戏、音视频、隐私安全、HarmonyOS座舱等。同时鸿蒙开发套件推出了升级的ArkTS、ArkUI、ArkCompiler等技术,通过这些技术的加持,让HarmonyOS App从开发、到布局,再到性能,都得到了质的飞跃。从而全面加速推进HarmonyOS应用生态。
2022-11-11 13:23:14
6043
原创 史上最全的Go语言模块(Module)管理详解(基于Go1.19)
本文主要介绍了Go语言的两种模块管理机制:go modules和Go工作区。其中Go工作区模式为了解决诟病已久的go modules路径问题,从Go1.18开始引入的。使用最新版本Go的同学推荐使用Go工作区模式管理Go模块,这将为你带来更好的模块管理体验。除此之外,本文还介绍了在VSCode中如何使用Go工作区模式管理Go模块,以及如何排除Go Language Server启动时产生的错误。
2022-09-13 09:42:32
2816
1
原创 Python爬虫编程思想(162): 综合爬虫项目:可视化爬虫
到现在为止,我们已经学习了相当多的爬虫知识,包括各种网络库、分析库、多线程爬虫、基于Selenium和Appium的爬虫,以及Scrapy爬虫框架。在前面的章节中也提供了大量的爬虫项目,不过这些爬虫应用都有一个共同点,都是控制台程序,需要直接在命令行中运行。但对于大型的爬虫项目,如果没有GUI接口,控制起来是很费劲的。...
2022-08-14 20:40:14
802
2
原创 Python爬虫编程思想(161):Scrapy中的通用爬虫
我们已经讲解的爬虫都是抓取一个或几个页面,然后分析页面中的内容,这种爬虫可以称为专用爬虫,通常是用来抓取特定页面中感兴趣的内容,例如,某个城市的天气预报信息,或特定商品的信息等。除了专业爬虫外,还有一类爬虫应用非常广泛,这就是通用爬虫。...
2022-08-14 20:12:59
491
原创 Python爬虫编程思想(159):Scrapy中的爬虫中间件
爬虫中间件(Spider Middleware)是Spider处理机制的构造框架,我们首先来看一下爬虫中间件的架构。当爬虫向服务端发送请求之前,会经过爬虫中间件处理。下载器(Downloader)生成 Response之后,Response会被发送给 Spider,在发送给 Spider之前,Response会首先经过爬虫中间件处理,当Spider处理生成Item后,也会经过爬虫中间件处理。所以爬虫中间件会在如下3个位置起作用。...
2022-08-14 19:42:48
712
原创 Python爬虫编程思想(158):Scrapy中的下载器中间件
Scrapy允许使用中间件干预数据的抓取过程,以及完成其他数据处理工作。其中一类非常重要的中间件就是下载器中间件。下载器中间件可以对数据的下载和处理过程进行拦截。在Scrapy爬虫中,数据下载和处理分下面两步完成。...
2022-08-14 19:29:11
496
原创 Python爬虫编程思想(157):使用Scrapy从CSV格式转换到JSON格式
通过scrapy框架编写的爬虫很容易进行格式转换,本节将利用爬虫将CSV格式的文件转换为JSON格式的文件。转换的基本原理是将CSV格式的文件作为数据源来读取,然后在parse方法中将CSV文件中的数据通过Item转换为指定的格式,如JSON格式。...
2022-08-14 19:20:41
483
原创 Python爬虫编程思想(156):使用Scrapy抓取天气预报数据
并不是所有的数据都在网页代码中,对于通过AJAX方式更新数据的Web页面,通常会使用Web API的方式从服务端获取数据,然后通过JavaScript代码将这些数据显示在Web页面的组件中。在这种情况下,无法通过抓取HTML代码的方式获取这些数据,而要通过直接访问这些Web API的方式从服务端抓取数据。...
2022-08-14 19:10:51
558
原创 Python爬虫编程思想(155):使用Scrapy处理带隐藏文本框的登录页面
在这个例子中假设服务端程序除了要求输入用户名和密码,没有做任何限制。但在实际应用中,服务端程序可能会加各种其他的校验
2022-08-14 18:42:23
439
原创 Python爬虫编程思想(154):使用Scrapy处理登录页面
在抓取Web页面数据时,并不是每一个页面的数据在任何时候都可以抓取到。有一些页面,需要用户登录后才可以在浏览器中显示,如果想通过爬虫抓取这样的页面,同样也需要登录。也就是说,这种页面只有特定的用户才能访问。...
2022-08-14 18:32:58
614
原创 见鬼,U盘空间怎么少了,原来是EFI分区搞的鬼,删除它
通常,您无法在文件资源管理器中查看EFI分区,因为EFI分区没有驱动器号。如果意外删除此分区,则会导致已安装的系统无法启动。因此,为了保护此分区,Windows不允许您轻松删除它。然而,有些人想要删除EFI分区,或者EFI分区被建立在U盘上,现在要格式化整个U盘,由于EFI分区无法轻易删除,所以也就无法轻易格式化整个U盘,所以本文给出一个解决方案,允许在Windows中(Windows10或Windows11)删除EFI分区,这样就可以利用整个U盘了。...
2022-07-15 12:19:37
1947
原创 Python爬虫编程思想(153):使用Scrapy抓取数据,抓取多个Url
在前面的案例中都是只抓取了一个Url对应的页面,但在实际应用中,通常需要抓取多个Url,在爬虫类的start_urls变量中添加多个Url,运行爬虫时就会抓取start_urls变量中所有的Url。下面的代码在start_urls变量中添加了2个Url,运行MultiUrlSpider爬虫后,就会抓取这两个Url对应的页面。...
2022-06-28 17:34:24
1689
原创 Python爬虫编程思想(152):使用Scrapy抓取数据,使用ItemLoader保存多条抓取的数据
在上一篇文章中通过ItemLoader保存了一条抓取的数据,如果要保存多条或所有抓取的数据,就需要parse方法返回一个MyscrapyItem数组。
2022-06-28 17:30:49
992
原创 Python爬虫编程思想(151):使用Scrapy抓取数据,用ItemLoader保存单条抓取的数据
在前面的文字中通过parse方法返回一个MyscrapyItem对象的方式将抓取的数据保存到指定的文件中,本文会介绍另外一种保存数据的方式:ItemLoader。
2022-06-25 22:06:05
900
原创 Python爬虫编程思想(150):使用Scrapy抓取数据,并将抓取到的数据保存为多种格式的文件
parse方法的返回值会被传给Item Pipeline,并由相应的Item Pipeline将数据保存成相应格式的文件。parse方法必须返回Item类型的数据。也就是说,parse方法的返回值类型必须是scrapy.Item或其scrapy.Item的子类。在该类中会定义与要保存的数据对应的属性。...
2022-06-12 21:54:57
1195
原创 Python爬虫编程思想(149):使用Scrapy抓取数据,并通过XPath指定解析规则
本文的案例会在parse方法中通过response参数设置XPath,然后从HTML代码中过滤出我们感兴趣的信息,最后将这些信息输出到PyCharm的Console中。
2022-06-12 21:51:12
1194
原创 Python爬虫编程思想(148):在PyCharm中使用扩展工具运行Scrapy程序
在上一篇文章中编写了一个execute.py文件用于运行Scrapy程序。其实本质上也是执行scrapy命令来运行Scrapy程序。不过每创建一个Scrapy工程,都要编写一个execute.py文件放到PyCharm工程中用于运行Scrapy程序显得很麻烦,为了在PyCharm中更方便地运行Scrapy程序,可以使用PyCharm扩展工具通过scrapy命令运行Scrapy程序。
2022-06-02 15:57:08
1434
1
原创 Python爬虫编程思想(147):在PyCharm中使用Scrapy
前面的例子是通过文本编辑器编写的,但在实际的开发中不可能用文本编辑器编写整个网络爬虫,所以需要选择一个IDE。我推荐目前最流行的PyCharm作为Python IDE。
2022-05-26 22:26:42
1581
原创 Python爬虫编程思想(146):创建和使用Scrapy工程
Scrapy框架提供了一个scrapy命令用来建立Scrapy工程,可以使用下面的命令建立一个名为myscrapy是Scrapy工程。
2022-05-15 08:56:45
1504
原创 Python爬虫编程思想(145):使用Scrapy Shell抓取Web资源
Scrapy提供了一个Shell,相当于Python的REPL环境,我们可以用这个Scrapy Shell测试Scrapy代码。
2022-05-10 18:34:32
1650
原创 Python爬虫编程思想(144):爬虫框架Scrapy的基础知识
Scrapy是一个非常优秀的爬虫框架,通过Scrapy框架,可以非常轻松地实现强大的爬虫系统,程序员只需要将精力放在抓取规则以及如何处理抓取的数据上,至于一些外围的工作,例如,抓取页面,保存数据、任务调度、分布式等,直接交给Scrapy就可以了。
2022-05-09 22:28:02
1586
原创 Python爬虫编程思想(142):多线程和多进程爬虫--多进程
尽管多线程可以实现并发执行,不过多个线程之间是共享当前进程的内存的,也就是说,线程可以申请到的资源有限。要想更能发挥并发的作用,可以考虑使用多进程。
2022-03-31 19:41:00
2302
原创 Python爬虫编程思想(141):多线程和多进程爬虫--生产者-消费者问题与queue模块
本文使用线程锁以及队列来模拟一个典型的案例:生成者-消费者模型。在这个场景下,商品或服务的生产者生成商品,然后将其放到类似队列的数据结构中,生产商品的时间是不确定的,同样消费者消费生产者生产的商品的时间也是不确定的。
2022-03-31 19:36:46
4110
原创 Python爬虫编程思想(140):多线程和多进程爬虫--信号量
信号量是最古老的同步原语之一,它是一个计数器,用于记录资源消耗情况。当资源消耗时递减,当资源释放时递增。我们可以认为信号量代表资源是否可用。
2022-03-31 19:33:41
2127
GWT.in.Practice
2008-12-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人