自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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&lt

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关注的人

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