- 博客(105)
- 收藏
- 关注
原创 OpenCV学习笔记(9):图像的基本变换
OpenCV学习笔记(9):图像的基本变换01 图像的放大与缩小 cv2.resize()02 图像的翻转 cv2.flip()03 图像的旋转 cv2.rotate()04 仿射变换 cv2.warpAffine()仿射变换之图像平移操作仿射变换之获取变换矩阵API(1) cv2.getRotationMatrix2D()仿射变换之获取变换矩阵API(2) cv2.getAffineTransform()仿射变换之透视变换 cv2.warpPerspective().........
2022-06-09 22:47:39
2767
3
原创 OpenCV学习笔记(8):图像运算——图像的加减乘除、图像的融合、图像的逻辑运算
OpenCV学习笔记(8):图像运算——图像的加减乘除、图像的融合、图像的逻辑运算文章目录OpenCV学习笔记(8):图像运算——图像的加减乘除、图像的融合、图像的逻辑运算01 图像的加减乘除 cv2.add cv2.subtract cv2.multiply cv2.divide加法运算 cv2.add()减法 cv2.substract()乘法 cv2.multiply()除法 cv2.divide()02 图像的融合 cv2.addWeighted03 OpenCV的逻辑运算--与 或 非 异或
2022-05-18 21:59:05
2694
原创 OpenCV学习笔记(7):(1-6)绘制作业实战
OpenCV学习笔记(7):(1-6)绘制作业实战实现功能:按下l键,进入绘制直线模式;按下r键,拖动鼠标可以绘制矩形;按下c键,拖动鼠标可以绘制圆形重要的是逻辑!设置全局变量curshape判断要绘制什么图,和起始坐标startpos1.在while死循环中不断获得curshape的值,如果按下对应按键,改变该值2.将此值传入鼠标回调函数mouse_callback中,根据该值决定绘制不同图形,比如:curshape==1,则绘制矩形import cv2import numpy as np
2022-05-16 10:58:08
831
原创 OpenCV学习笔记(6):绘制文本(汉字)
OpenCV学习笔记(6):绘制文本重要API:cv2.putText()在opencv中可以通过cv2.putext接口实现显示文本(英文字符)的功能# putText(img, text, org, fontFace, fontScale, color, thickness=None, lineType=None, bottomLeftOrigin=None)# org: 起始字符左下角的位置 fontFace: 字体类型 fontScale: 字体大小# 绘制文本 cv2.putTex
2022-05-16 10:43:51
2746
原创 OpenCV学习笔记(5):绘制图形:直线、矩形、圆、椭圆、多边形
OpenCV学习笔记(5):绘制图形:直线、矩形、圆、椭圆、多边形目录OpenCV学习笔记(5):绘制图形:直线、矩形、圆、椭圆、多边形01 绘制直线 cv2.line02 绘制矩形 cv2.rectangle03 绘制圆 cv2.circle04 绘制椭圆 cv2.ellipse05 绘制多边形与填充多边形(详细)cv2.polylines cv2.fillPoly cv2.fillConvexPoly利用opencv提供的绘制图形API可以轻松在图像上绘制各种图形,比如直线、矩形、圆、椭圆、多边形等
2022-05-15 12:07:40
1654
原创 OpenCV学习笔记(4):颜色通道的分离与合并
OpenCV学习笔记(4):颜色通道的分离与合并实现图像的分割与融合重要API:cv2.split()和cv2.merge()import cv2import numpy as np# 图像的分割与融合def spilt_merge(): img = np.zeros((200, 200, 3), np.uint8) # 分割通道 b, g, r = cv2.split(img) # 区别于numpy的split # 这里拆出来的b, g, r数组是一维的
2022-05-14 14:37:37
524
原创 OpenCV学习笔记(3):深浅拷贝
OpenCV学习笔记(3):深浅拷贝主要涉及到opencv内部的读取图片方式,经python接口后图片显示的数据类型重要API:浅拷贝img.view() 深拷贝img.copy()note:其实浅拷贝就是将原来的数据是新建一个索引,原来变则现在变深拷贝是重新重新开辟一个内存,所有数据与原来数据无关ps:这一节没啥意思,知道python的深浅拷贝机制即可,下一节才好玩python中图片数据已经包装成ndarray,所以对mat的深浅拷贝,其实就是对ndarray的深浅拷贝Mat是OpenCV在
2022-05-14 14:24:28
1632
原创 OpenCV学习笔记(2):颜色空间的转化
OpenCV学习笔记(2):颜色空间的转化关键API cv2.cvtColor本函数实现功能:通过调用opencv2的trackbar控件控制不同颜色空间的转化具体有将BGR分别转换为BGRA、RGBA、GRAY、HSV和YUV其中GRAY为灰度图,YUV只需占用极少的频宽,色彩较少(想详细了解这几种色彩空间可以自行百度)import cv2import numpy as np# 关键API cv2.cvtColordef color_convert(): # 利用trackba
2022-05-14 14:12:52
1068
1
原创 OpenCV学习笔记(1):图像和视频的加载和显示
OpenCV学习笔记(1):图像和视频的加载和显示文章目录OpenCV学习笔记(1):图像和视频的加载和显示01 创建和显示窗口02 读取和显示图像03 保存图片04 显示视频05 视频录制06 控制鼠标07 TrackBar拖动控件的使用01 创建和显示窗口# 01 创建和显示窗口def display_window(): cv2.namedWindow(winname="window") cv2.imshow('window', 0) key = cv2.waitKey(
2022-05-11 21:13:55
967
原创 PyQt5最全95 窗口之QSS基础超细
PyQt5最全95 窗口之QSS基础CSS教程:https://www.w3school.com.cn/css/index.asp详细请查看链接,不过读下面的一篇文章使用是完全没有问题了。QSS概念QSS的全程是Qt Style Sheets,顾名思义Qt样式表。Qt样式表是一种强大的机制,除了通过子类化QStyle已经可以实现的功能外,还允许您自定义窗口小部件的外观。 Qt样式表的概念,术语和语法受到HTML级联样式表(CSS)的启发,但适用于小部件世界。样式表是文本规范,可以使用QApplic
2021-12-21 22:23:02
4530
1
原创 PyQt5最全94 窗口之项目实战:QPixmap实现绘图应用
PyQt5最全94 窗口之项目实战:QPixmap实现绘图应用from PyQt5.QtCore import *from PyQt5.QtGui import *from PyQt5.QtWidgets import *import sysclass Drawing(QWidget): """ 项目实战:实现绘图应用 需要解决三个核心内容: 1.如何绘图 在paintEVent方法中绘图,通过调用update方法触发paintEVent的调用
2021-12-19 22:19:59
1214
原创 PyQt5最全93 窗口之用代码控制窗口的最大化和最小化
PyQt5最全93 窗口之用代码控制窗口的最大化和最小化from PyQt5.QtCore import *from PyQt5.QtGui import *from PyQt5.QtWidgets import *import sysclass WindowMaxMin(QWidget): """ 用代码控制窗口的最大化和最小化 获取桌面可以尺寸 QApplication.desktop() """ def __init__(self):
2021-12-19 22:15:11
3500
1
原创 PyQt5最全92 窗口之setWindowFlags设置窗口样式
PyQt5最全92 窗口之setWindowFlags设置窗口样式from PyQt5.QtCore import *from PyQt5.QtGui import *from PyQt5.QtWidgets import *import sysclass WindowPattern(QMainWindow): """ 设置窗口样式(主要是窗口边框、标题栏和窗口本身的样式) """ def __init__(self): super(Windo
2021-12-19 22:09:45
4765
8
原创 PyQt5最全91 窗口之setStyle设置窗口风格
PyQt5最全91 窗口之setStyle设置窗口风格from PyQt5.QtWidgets import *from PyQt5 import QtCoreimport sysclass WindowStyle(QWidget): """ 窗口、绘图与特效:设置窗口风格 设置窗口中控件的风格 QApplication.setStyle(...) print(QStyleFactory.keys()) # ['Windows', 'WindowsXP
2021-12-19 22:06:19
2625
原创 PyQt5最全90 信号与槽之多窗口交互(2):使用信号与槽
PyQt5最全90 信号与槽之多窗口交互(2):使用信号与槽from PyQt5.QtWidgets import *import sysfrom DateDialog2 import DateDialog2class MultiWindow2(QWidget): """ 多窗口交互(2):使用信号与槽 """ def __init__(self): super(MultiWindow2, self).__init__() sel
2021-12-18 21:01:02
797
原创 PyQt5最全89 信号与槽之多窗口交互(1):不使用信号与槽
PyQt5最全89 信号与槽之多窗口交互(1):不使用信号与槽from PyQt5.QtWidgets import *import sysfrom DateDialog1 import DateDialog1class MultiWindow1(QWidget): """ 多窗口交互(1):不使用信号与槽 Win1 强耦合的方式直接从Win2中获取控件得到值 Win2 实现了在两个按钮下调用Win2中的类中的日历控件,也就是在点击按钮1和2对应
2021-12-18 17:28:37
895
原创 PyQt5最全88 信号与槽之Override覆盖槽函数
PyQt5最全88 信号与槽之Override覆盖槽函数from PyQt5.QtWidgets import *from PyQt5.QtCore import *import sysclass OverrideSlot(QWidget): """ Override(覆盖)槽函数 覆盖的话不需要连接了,已经存在过了,因为已经连接过了。 其实有的还是需要写连接的,比如你非得把某些信号连接到其他槽上,所以这里指的是默认的信号 """ def __
2021-12-18 17:19:40
438
原创 PyQt5最全87 信号与槽之使用partial对象为槽函数传递参数
PyQt5最全87 信号与槽之使用partial对象为槽函数传递参数from PyQt5.QtWidgets import *from functools import partialimport sysclass PartialSlotArg(QMainWindow): """ 使用partial对象为槽函数传递参数 """ def __init__(self): super(PartialSlotArg, self).__init__()
2021-12-18 17:13:10
440
原创 PyQt5最全86 信号与槽之使用Lambda表达式为槽函数传递参数
PyQt5最全86 信号与槽之使用Lambda表达式为槽函数传递参数from PyQt5.QtWidgets import *import sysclass LambdaSlotArg(QMainWindow): """ 使用Lambda表达式为槽函数传递参数 以前的槽函数的参数都是通过发射信号的emit方法传递的,在绑定时并没有传递参数,而Lambad表达式则可以 在QCheckBox复选框控件用到过的 Lambda表达式传递参数 可以翻回去看一下
2021-12-18 17:08:59
1542
原创 PyQt5最全85 信号与槽之connectSlotsByName信号槽自动连接
PyQt5最全85 信号与槽之connectSlotsByName信号槽自动连接from PyQt5.QtWidgets import *from PyQt5 import QtCoreimport sysclass AutoSignalSlot(QWidget): """ 信号与槽自动连接 QMetaObject.connectSlotsByName 避免使用connect 规定格式:on_objectname_signalname eg: o
2021-12-18 17:04:04
1542
2
原创 PyQt5最全84 信号与槽之多线程更新UI数据
PyQt5最全84 信号与槽之多线程更新UI数据from PyQt5.QtWidgets import *from PyQt5.QtCore import *import sysimport timeclass BackendThread(QThread): """ 多线程更新UI数据 """ update_date = pyqtSignal(str) def run(self): while True: da
2021-12-15 21:59:05
921
原创 PyQt5最全83 信号与槽之为窗口类添加信号
PyQt5最全83 信号与槽之为窗口类添加信号from PyQt5.QtWidgets import *from PyQt5.QtCore import *import sysclass WinSignal(QWidget): """ 为窗口类添加信号 这里实现在一个按钮的槽函数中添加关闭选项,以前的是之间绑定系统的关闭选项 """ button_clicked_signal = pyqtSignal() def __init__(self):
2021-12-15 21:55:30
623
原创 PyQt5最全82 信号与槽之多个信号与槽的连接与断开
PyQt5最全82 信号与槽之多个信号与槽的连接与断开from PyQt5.QtCore import *class NSignalNSlot(QObject): """ N Signal N Slot 信号槽N对N的连接与断开 断开是disconnect """ signal1 = pyqtSignal() signal2 = pyqtSignal(int) signal3 = pyqtSignal() def __init
2021-12-15 21:48:02
1231
原创 PyQt5最全81 信号与槽之为类添加多个参数可选的信号
PyQt5最全81 信号与槽之为类添加多个参数可选的信号from PyQt5.QtCore import *class MultiSignal(QObject): """ 为类添加多个信号 """ signal1 = pyqtSignal() # 无参数 signal2 = pyqtSignal(int) signal3 = pyqtSignal(int, str) signal4 = pyqtSignal(list) signal
2021-12-15 21:45:43
823
原创 PyQt5最全80 信号与槽之pyqtSignal自定义信号
PyQt5最全80 信号与槽之pyqtSignal自定义信号from PyQt5.QtCore import *class MyTypeSignal(QObject): """ 自定义信号 实现两个对象的通信 pyqtSignal() 在counter文件 使用线程类(QThread)编写计数器 中使用过 """ # 定义一个信号 sendmsg = pyqtSignal(object) # 发送一个信号 # 发送3个参
2021-12-15 21:42:09
1986
原创 PyQt5最全79 信号与槽之信号(Signal)与槽(Slot)基础
PyQt5最全79 信号与槽之信号(Signal)与槽(Slot)基础import sysfrom PyQt5.QtWidgets import *class SignalSlotDemo(QWidget): """ 信号(Signal)与槽(Slot) 信号本质上来讲是一个事件,需要程序或者点击等事件来触发 槽一般是指函数或者方法,槽是接收信号的程序 """ def __init__(self): super(SignalSlo
2021-12-15 21:36:52
761
原创 PyQt5最全78 布局之QSplitter拖动控件之间的边界
PyQt5最全78 布局之QSplitter拖动控件之间的边界import sysfrom PyQt5.QtWidgets import *from PyQt5.QtCore import *class Splitter(QWidget): """ 拖动控件之间的边界 QSplitter() """ def __init__(self): super(Splitter, self).__init__() self.ini
2021-12-15 21:31:24
881
原创 PyQt5最全77 布局之QFormLayout表单布局: 表单设计
PyQt5最全77 布局之QFormLayout表单布局: 表单设计import sysfrom PyQt5.QtWidgets import *class FormLayout(QWidget): """ 表单布局: 表单设计 QFormLayout() 即利用表单布局完成和上节同样的表单布局 """ def __init__(self): super(FormLayout, self).__init__() se
2021-12-15 21:26:22
1089
原创 PyQt5最全76 布局之QGridLayout实现计算机UI
PyQt5最全76 布局之QGridLayout实现计算机UIimport sysfrom PyQt5.QtWidgets import *class GridLayoutCalc(QWidget): """ 栅格布局:QGridLayout() 实现计算机UI """ def __init__(self): super(GridLayoutCalc, self).__init__() self.setWindowTitl
2021-12-15 21:23:46
622
原创 PyQt5最全75 布局之QGridLayout栅格布局
PyQt5最全75 布局之QGridLayout栅格布局import sysfrom PyQt5.QtWidgets import *class GridForm(QWidget): """ 栅格布局: 表单设计 QGridLayout() 即利用栅格布局完成表单布局,具体表单布局见下节 """ def __init__(self): super(GridForm, self).__init__() self.set
2021-12-15 21:21:34
2058
原创 PyQt5最全74 布局之技巧让按钮永远在窗口的右下角
PyQt5最全74 布局之技巧让按钮永远在窗口的右下角import sysfrom PyQt5.QtWidgets import *class RightBottomButton(QWidget): """ 小技巧:让按钮永远在窗口的右下角 """ def __init__(self): super(RightBottomButton, self).__init__() self.setWindowTitle('让按钮永远在右下角
2021-12-14 19:58:43
2721
原创 PyQt5最全73 布局之addStretch设置布局的伸缩量
PyQt5最全73 布局之addStretch设置布局的伸缩量import sysfrom PyQt5.QtWidgets import *class Stretch(QWidget): """ 设置布局的伸缩量:addStretch """ def __init__(self): super(Stretch, self).__init__() self.setWindowTitle('设置伸缩量') self.re
2021-12-14 19:54:32
1599
原创 PyQt5最全72 布局之设置控件的对齐方式
PyQt5最全72 布局之设置控件的对齐方式import sysfrom PyQt5.QtWidgets import *from PyQt5.QtCore import Qtclass HBoxLayoutAlign(QWidget): """ 设置控件的对齐方式 addWidget方法 """ def __init__(self): super(HBoxLayoutAlign, self).__init__() self.se
2021-12-14 19:51:03
5745
3
原创 PyQt5最全71 布局之QVBoxLayout垂直盒布局
PyQt5最全71 布局之QVBoxLayout垂直盒布局import sysfrom PyQt5.QtWidgets import *class VBoxLayout(QWidget): """ 垂直盒布局:QVBoxLayout """ def __init__(self): super(VBoxLayout, self).__init__() self.setWindowTitle('垂直盒布局') layo
2021-12-14 19:48:53
902
原创 PyQt5最全70 布局之QHBoxLayout水平盒布局
PyQt5最全70 布局之QHBoxLayout水平盒布局import sysfrom PyQt5.QtWidgets import *class HBoxLayout(QWidget): """ 水平盒布局:QHBoxLayout """ def __init__(self): super(HBoxLayout, self).__init__() self.setWindowTitle('水平盒布局') hlay
2021-12-14 19:46:57
546
原创 PyQt5最全69 布局之move方法绝对布局
PyQt5最全69 布局之move方法绝对布局import sysfrom PyQt5.QtWidgets import *class AbsoluteLayout(QWidget): """ 绝对布局: move 方法 通过x, y坐标来控制控件位置 """ def __init__(self): super(AbsoluteLayout, self).__init__() self.setWindowTitle('绝对布局
2021-12-14 19:45:35
1241
原创 PyQt5最全68 Web之PyQt5调用JavaScript代码
PyQt5最全68 PyQt5调用JavaScript代码from PyQt5.QtWidgets import *from PyQt5.QtCore import *from PyQt5.QtWebEngineWidgets import *import sysimport osclass WebEngineView(QWidget): """ PyQt5调用JavaScript代码 PyQt5和JavaScrip交互 什么叫交互 PyQt5<
2021-12-14 19:40:47
2103
原创 PyQt5最全67 Web之显示嵌入本地Web页面
PyQt5最全67 显示嵌入本地Web页面from PyQt5.QtWidgets import *from PyQt5.QtGui import *from PyQt5.QtCore import *from PyQt5.QtWebEngineWidgets import *import sysimport osclass InnerHTML(QMainWindow): """ 显示嵌入Web界面 setHtml """ def __init__
2021-12-14 19:37:33
2819
原创 PyQt5最全66 Web之装载本地Web页面
PyQt5最全66 装载本地Web页面from PyQt5.QtWidgets import *from PyQt5.QtGui import *from PyQt5.QtCore import *from PyQt5.QtWebEngineWidgets import *import sysimport osclass WebEngineView(QMainWindow): """ 装载本地Web界面 load fromLocalFile """
2021-12-14 19:35:31
1975
原创 PyQt5最全65 Web之使用QWebEngineView浏览器控件显示网页
PyQt5最全65 使用QWebEngineView浏览器控件显示网页from PyQt5.QtWidgets import *from PyQt5.QtCore import *from PyQt5.QtWebEngineWidgets import *import sysclass WebEngineView(QMainWindow): """ 用Web浏览器(QWebEngineView)显示网页 PyQt5和Web的交互技术 同时使用Python和W
2021-12-14 19:31:00
1585
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人