精华内容
下载资源
问答
  • 基于opencv和tkinter的图像处理系统1.0,是用python语言进行编写,亲测有效。主体思想来源于:李立宗老师的opencv编成案例详解。制作该系统其主要目的是给初学图像处理的学生提供一些直观的印象。当然系统存在不足:...
  • Python+OpenCV 设计GUI图像处理

    千次阅读 2020-03-21 14:37:22
    这里主要使用PySimpleGUI、cv2和numpy库文件,PySimpleGUI库文件实现GUI可视化,cv2库文件是Python的OpenCV接口文件,numpy库文件实现数值的转换和运算,均可通过pip导入。 import PySimpleGUI as sg #pip install ...

    1、导入库文件
    这里主要使用PySimpleGUI、cv2和numpy库文件,PySimpleGUI库文件实现GUI可视化,cv2库文件是Python的OpenCV接口文件,numpy库文件实现数值的转换和运算,均可通过pip导入。

    import PySimpleGUI as sg  #pip install pysimplegui
    import cv2  #pip install opencv-python
    import numpy as np #pip install numpy
    2、设计GUI
    基于PySimpleGUI库文件实现GUI设计,本项目界面设计较为简单,设计800X400尺寸大小的框图,浅绿色背景,主要由摄像头界面区域和控制按钮区域两部分组成。效果如下所示:

    GUI代码如下所示:

        #背景色
        sg.theme('LightGreen')
     
        #定义窗口布局
        layout = [
          [sg.Image(filename='', key='image')],
          [sg.Radio('None', 'Radio', True, size=(10, 1))],
          [sg.Radio('threshold', 'Radio', size=(10, 1), key='thresh'),
           sg.Slider((0, 255), 128, 1, orientation='h', size=(40, 15), key='thresh_slider')],
          [sg.Radio('canny', 'Radio', size=(10, 1), key='canny'),
           sg.Slider((0, 255), 128, 1, orientation='h', size=(20, 15), key='canny_slider_a'),
           sg.Slider((0, 255), 128, 1, orientation='h', size=(20, 15), key='canny_slider_b')],
          [sg.Radio('contour', 'Radio', size=(10, 1), key='contour'),
           sg.Slider((0, 255), 128, 1, orientation='h', size=(20, 15), key='contour_slider'),
           sg.Slider((0, 255), 80, 1, orientation='h', size=(20, 15), key='base_slider')],
          [sg.Radio('blur', 'Radio', size=(10, 1), key='blur'),
           sg.Slider((1, 11), 1, 1, orientation='h', size=(40, 15), key='blur_slider')],
          [sg.Radio('hue', 'Radio', size=(10, 1), key='hue'),
           sg.Slider((0, 225), 0, 1, orientation='h', size=(40, 15), key='hue_slider')],
          [sg.Radio('enhance', 'Radio', size=(10, 1), key='enhance'),
           sg.Slider((1, 255), 128, 1, orientation='h', size=(40, 15), key='enhance_slider')],
          [sg.Button('Exit', size=(10, 1))]
        ]
     
        #窗口设计
        window = sg.Window('OpenCV实时图像处理',
                   layout,
                   location=(800, 400),
                   finalize=True)

    展开全文
  • 主要介绍了Macbook安装Python最新版本(3.6.4)、GUI开发环境、图像处理、视频处理环境详解,需要的朋友可以参考下
  • 2-python图像处理之Matplotlib

    千次阅读 2016-12-31 12:06:44
    Matplotlib matplotlib 是python最著名的绘图库...在处理数学运算、绘制图表,或者在图像上绘制点、直线和曲线时,这个库都十分实用一. 画点线(1.画点,使用pylab中的plot()plot(x,y.'*')(2. 画线,使用pylab中的pl

    Matplotlib
    matplotlib 是python最著名的绘图库,它提供了一整套和matlab相似的命令API,
    十分适合交互式地行制图。而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中。
    在处理数学运算绘制图表,或者在图像上绘制点直线和曲线时,这个库都十分实用


    一. 画点线

    (1.画点,使用pylab中的plot()

    plot(x,y.'*')

    (2. 画线,使用pylab中的plot()

        plot([...],[...],'...')
        线型================
        '-' 实线
        '--' 虚线
        颜色================
        ':' 点线
        'b' 蓝色
        'g' 绿色
        'r' 红色
        'c' 青色
        'm' 品红
        'y' 黄色
        'k' 黑色
        'w' 白色
        标记================
        '.''o' 圆圈
        's' 正方形
        '*' 星形
        '+' 加号
        'x' 叉号

    测试案例:

    x = [100,100,400,400]
    y = [200,500,200,500]
    plot(x,y) # 默认为蓝色实线
    plot(x,y,'r*') # 红色星状标记
    plot(x,y,'go-') # 带有圆圈标记的绿线
    plot(x,y,'ks:') # 带有正方形标记的黑色虚线

    二. 与用户交互
    (1. 使用pylab中的ginput()来接收用户点击坐标

        x = ginput(...)
        #x即存放用户点击的坐标
    

    三. 关闭坐标轴及坐标轴操作
    (1. 使用pylab中的axis(..)

    axis('eqial')   对齐坐标轴
    axis('off') 关闭坐标轴

    小案例:

    #coding=utf-8
    #
    #Matplotlab学习案例
    #
    #左右两幅图,
    #左边的图用MatPlotlib绘制一个六边形
    #右边的图用Matplotlib绘制一些随机的点和线
    #用户可以使用鼠标点击随机点中的三个,在控制台输出点击的坐标
    #
    
    import matplotlib.pyplot as plt
    import pylab as plb
    import random
    #绘制左图
    plt.subplot(121,axisbg='1')
    # 绘制六边形,
    plb.plot([110,310],[10,10])
    #带有圆圈标记的绿线
    plb.plot([110,10],[10,210],'go-')
    plb.plot([10,110],[210,410])
    #带有正方形标记的黑色点线
    plb.plot([110,310],[410,410],'ks:')
    plb.plot([310,410],[410,210])
    #带红色星状虚线
    plb.plot([410,310],[210,10],'r*--')
    
    #绘制右图
    plt.subplot(122,axisbg='0')
    n=3
    while n>0:
        plb.plot([random.randint(20,100),random.randint(50,200)]
                 ,[random.randint(20,100),random.randint(50,200)],'wo-')
        n = n-1
    
    
    #接收三个随机点
    x = plb.ginput(3)
    for temp in x:
        print temp
    #关闭坐标轴
    # plb.axis('off')
    plt.show()

    这里写图片描述
    随意点击的三个点的坐标

    展开全文
  • opencv 结合pyqt5 编写简单的图像处理GUI程序

    千次阅读 多人点赞 2020-04-03 19:46:21
    我们学的内容都是跑在命令行中的,并没有界面,那么”脚本语言”Python如何搭建GUI界面呢? 其实Python支持多种图形界面库,如Tk(Tkinter)、wxPython、PyQt等,虽然Python自带Tkinter,无需额外安装包,但我更推荐...

    实验目标

    实验目标
    我们学的内容都是跑在命令行中的,并没有界面,那么”脚本语言”Python如何搭建GUI界面呢?
    其实Python支持多种图形界面库,如Tk(Tkinter)、wxPython、PyQt等,虽然Python自带Tkinter,无需额外安装包,但我更推荐使用PyQt,一是因为它完全基于Qt,跨平台,功能强大,有助于了解Qt的语法,二是Qt提供了Designer设计工具,界面设计上可以拖控件搞定,非常方便,大大节省时间。

    pyqt5

    安装pyqt5:
    pip install pyqt5
    我推荐使用Qt Designer来设计界面,如果你装的是Anaconda的话,就已经自带了designer.exe,例如我的是在:D:\ProgramData\Anaconda3\Library\bin\,如果是普通的Python环境,则需要自行安装:
    pip install pyqt5-tools
    安装完成后,designer.exe在Python安装目录下:xxx\Lib\site-packages\pyqt5_tools\。
    可以使用下面的代码生成一个简单的界面:

    import sys
    from PyQt5.QtWidgets import QApplication, QWidget
    
    if __name__ == '__main__':
        app = QApplication(sys.argv)
    
        window = QWidget()
        window.setWindowTitle('Hello World!')
        window.show()
    
        sys.exit(app.exec_())
    

    上述代码输出结果

    界面设计

    根据我们的挑战内容,解决思路是使用Qt Designer来设计界面,使用Python完成代码逻辑。打开designer.exe,会弹出创建新窗体的窗口,我们直接点击“create”:
    创建图形用户界面
    界面的左侧是Qt的常用控件”Widget Box”,右侧有一个控件属性窗口”Property Editor”,其余暂时用不到。本例中我们只用到了”Push Button”控件和”Label”控件:最上面的三个Label控件用于显示图片,可以在属性窗口调整它的大小,我们统一调整到150×150:
    拖动widget实现上图的效果
    调整label的宽和高
    另外,控件上显示的文字 text 属性和控件的名字 objectName 属性需要修改,便于显示和代码调用。可以按照下面我推荐的命名:
    控件属性设置
    这样大致界面就出来了,很简单:
    调整部件属性后的图形用户界面

    按钮事件

    我们知道GUI是通过事件驱动的,什么意思呢?比如前面我们已经设计好了界面,接下来就需要实现”打开摄像头”到”阈值分割”这5个按钮的功能,也就是给每个按钮指定一个”函数”,逻辑代码写在这个函数里面。这种函数就称为事件,Qt中称为槽连接。
    点击Designer工具栏的”Edit Signals/Slots”按钮,进入槽函数编辑界面,点击旁边的”Edit Widgets”可以恢复正常视图:
    点击,进入槽函数编辑界面
    然后点击按钮并拖动,当产生类似于电路中的接地符号时释放鼠标,参看下面动图:
    图解绑定按钮事件1
    在弹出的配置窗口中,可以看到左侧是按钮的常用事件,我们选择点击事件”clicked()”,然后添加一个名为”btnOpenCamera_Clicked()”的槽函数:
    图解绑定按钮事件2
    重复上面的步骤,给五个按钮添加五个槽函数,最终结果如下:
    添加按钮事件后结果
    到此,我们就完成了界面设计的所有工作,按下Ctrl+S保存当前窗口为.ui文件。.ui文件其实是按照XML格式标记的内容,可以用文本编辑器将.ui文件打开看看。

    ui文件转py代码

    因为我们是用Designer工具设计出的界面,并不是用Python代码敲出来的,所以要想真正运行,需要使用pyuic5将ui文件转成py文件。pyuic5.exe默认在%\Scripts\下,比如我的是在:D:\ProgramData\Anaconda3\Scripts\。
    打开cmd命令行,切换到ui文件的保存目录。Windows下有个小技巧,可以在目录的地址栏输入cmd,一步切换到当前目录:
    然后执行这条指令:
    pyuic5 -o mainForm.py using_pyqt_create_ui.ui
    如果出现pyuic5不是内部命令的错误,说明pyuic5的路径没有在环境变量里,添加下就好了。执行正常的话,就会生成mainForm.py文件,里面应该包含一个名为”Ui_MainWindow”的类。

    编写逻辑代码

    在同一工作目录下新建一个”mainEntry.py”的文件,存放逻辑代码。代码中的每部分我都写得比较独立,没有封装成函数,便于理解。代码看上去很长,但很简单,可以每个模块单独看。

    import sys
    import cv2 as cv
    
    from PyQt5 import QtCore, QtGui, QtWidgets
    from PyQt5.QtCore import *
    from PyQt5.QtGui import *
    from PyQt5.QtWidgets import QFileDialog, QMainWindow
    
    from mainForm import Ui_MainWindow
    
    
    class PyQtMainEntry(QMainWindow, Ui_MainWindow):
        def __init__(self):
            super().__init__()
            self.setupUi(self)
    
            self.camera = cv.VideoCapture(0)
            self.is_camera_opened = False  # 摄像头有没有打开标记
    
            # 定时器:30ms捕获一帧
            self._timer = QtCore.QTimer(self)
            self._timer.timeout.connect(self._queryFrame)
            self._timer.setInterval(30)
    
        def btnOpenCamera_Clicked(self):
            '''
            打开和关闭摄像头
            '''
            self.is_camera_opened = ~self.is_camera_opened
            if self.is_camera_opened:
                self.btnOpenCamera.setText("关闭摄像头")
                self._timer.start()
            else:
                self.btnOpenCamera.setText("打开摄像头")
                self._timer.stop()
    
        def btnCapture_Clicked(self):
            '''
            捕获图片
            '''
            # 摄像头未打开,不执行任何操作
            if not self.is_camera_opened:
                return
    
            self.captured = self.frame
    
            # 后面这几行代码几乎都一样,可以尝试封装成一个函数
            rows, cols, channels = self.captured.shape
            bytesPerLine = channels * cols
            # Qt显示图片时,需要先转换成QImgage类型
            QImg = QImage(self.captured.data, cols, rows, bytesPerLine, QImage.Format_RGB888)
            self.labelCapture.setPixmap(QPixmap.fromImage(QImg).scaled(
                self.labelCapture.size(), Qt.KeepAspectRatio, Qt.SmoothTransformation))
    
        def btnReadImage_Clicked(self):
            '''
            从本地读取图片
            '''
            # 打开文件选取对话框
            filename,  _ = QFileDialog.getOpenFileName(self, '打开图片')
            if filename:
                self.captured = cv.imread(str(filename))
                # OpenCV图像以BGR通道存储,显示时需要从BGR转到RGB
                self.captured = cv.cvtColor(self.captured, cv.COLOR_BGR2RGB)
    
                rows, cols, channels = self.captured.shape
                bytesPerLine = channels * cols
                QImg = QImage(self.captured.data, cols, rows, bytesPerLine, QImage.Format_RGB888)
                self.labelCapture.setPixmap(QPixmap.fromImage(QImg).scaled(
                    self.labelCapture.size(), Qt.KeepAspectRatio, Qt.SmoothTransformation))
    
        def btnGray_Clicked(self):
            '''
            灰度化
            '''
            # 如果没有捕获图片,则不执行操作
            if not hasattr(self, "captured"):
                return
    
            self.cpatured = cv.cvtColor(self.captured, cv.COLOR_RGB2GRAY)
    
            rows, columns = self.cpatured.shape
            bytesPerLine = columns
            # 灰度图是单通道,所以需要用Format_Indexed8
            QImg = QImage(self.cpatured.data, columns, rows, bytesPerLine, QImage.Format_Indexed8)
            self.labelResult.setPixmap(QPixmap.fromImage(QImg).scaled(
                self.labelResult.size(), Qt.KeepAspectRatio, Qt.SmoothTransformation))
    
        def btnThreshold_Clicked(self):
            '''
            Otsu自动阈值分割
            '''
            if not hasattr(self, "captured"):
                return
    
            _, self.cpatured = cv.threshold(
                self.cpatured, 0, 255, cv.THRESH_BINARY + cv.THRESH_OTSU)
    
            rows, columns = self.cpatured.shape
            bytesPerLine = columns
            # 阈值分割图也是单通道,也需要用Format_Indexed8
            QImg = QImage(self.cpatured.data, columns, rows, bytesPerLine, QImage.Format_Indexed8)
            self.labelResult.setPixmap(QPixmap.fromImage(QImg).scaled(
                self.labelResult.size(), Qt.KeepAspectRatio, Qt.SmoothTransformation))
    
        @QtCore.pyqtSlot()
        def _queryFrame(self):
            '''
            循环捕获图片
            '''
            ret, self.frame = self.camera.read()
    
            img_rows, img_cols, channels = self.frame.shape
            bytesPerLine = channels * img_cols
    
            cv.cvtColor(self.frame, cv.COLOR_BGR2RGB, self.frame)
            QImg = QImage(self.frame.data, img_cols, img_rows, bytesPerLine, QImage.Format_RGB888)
            self.labelCamera.setPixmap(QPixmap.fromImage(QImg).scaled(
                self.labelCamera.size(), Qt.KeepAspectRatio, Qt.SmoothTransformation))
    
    
    if __name__ == "__main__":
        app = QtWidgets.QApplication(sys.argv)
        window = PyQtMainEntry()
        window.show()
        sys.exit(app.exec_())
    

    程序运行情况

    运行GUI程序

    展开全文
  • 图像处理笔记整理基本概念及算法新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右...


    复习的时候跟着笔记本上的知识点打算做一个整体的重点思路上的归纳(PS:就是想在CSDN上发表人生第一篇笔记哈哈哈哈)后期可能有空会继续补充一些基础的算法哈哈哈,一些细节的算法可能会单独出文来进行介绍。

    基本概念及算法

    图像处理中的图像其实和其他信号相同,都是通过采样量化编码得到的。

    灰度直方图

    0-255(0是黑,255是白)
    灰度直方图其实就是以灰度统计的像素分布的图,所以它的积分面积也就是图像的面积。
    因此可以根据阈值设置,进行积分从而获取某一部分(前景或背景)物体的面积大小。

    卷积

    一、卷积的性质
    卷积,考量中心像素的像素值与周围像素的像素值之间的关系
    二、卷积的基本操作

    1. 边缘求取—梯度
      梯度公式:
      roberts:
      prewitt:
      111000111 \begin{matrix} -1 & -1 & -1 \\ 0 & 0& 0 \\ 1 & 1 & 1 \\ \end{matrix}
      sobel
      这种卷积核可以求取边缘的原因是,比如prewitt算子的Gx方向的算子,可以通过计算发现y上方向阶跃跨度大的点,这样的点的集合就是边缘,就是横向的边缘。
    2. 去噪处理—平滑
      噪声导致图像某些部位的像素值突变,除噪的过程就是对图像灰度值变化做均一化
      高斯平滑,中值滤波,均值滤波
      其中高斯滤波的平滑程度与参数σ\sigma相关,σ\sigma越大平滑强度越大。

    图像间的基本操作

    图像内部是点操作,图像之间是代数操作,几何操作
    一、点操作
    二、图像间加减乘除:

    1. 加法:多张图像取平均可以去噪
    2. 减法:去除背景可以做motion detection检测运动
    3. 乘法:二值图与原图相乘获得目标区域
    4. 除法:貌似没啥笔记,分母图片要加一个小小的数字吧

    三、几何变换
    改变空间坐标关系,平移,旋转,放大,缩小
    放大需要插值,但是可能会引起梯田效应
    四、图像的邻域操作

    1. connected component labeling
      根据条件对图像进行分区,两个条件:连通性和灰度条件
      连通性:四邻域或者八邻域
      灰度条件(intensity criterion)(IC),灰度阶梯为5,可以作为条件则小于5即可被分为一个区
    2. labeling algorithm
      根据连通性和IC进行分组,但是会有一些点同时满足两个IC,则分为是难以进行区分的点。(其实就是分界点吧,边界)

    五、图像的特征(region property)

    1. 周长、面积、中心、半径、中心距、极值点、曲率

    VTK&ITK

    形态学及其二值化(二值)

    一、性质:
    应用:图像增强、分割、恢复、边缘、纹理
    SE(structure element)结构化要素,SE需要定义中心点,空格子不算

    1. 膨胀(binary dilation)
      本质上是图像平移,但是实际计算时类似卷积操作。
    2. 腐蚀(erosion)
    3. 开运算(opening)
      变小
      先腐蚀再膨胀
      去除图像中孤立狭小的区域,是平滑操作
    4. 闭运算(closing)
      变大
      先膨胀再腐蚀
      对图像进行填充工作,比SE小的部分都被填充,平滑作用

    开闭运算的SE相同
    SE的大小不同,仅仅是运算速度不同,SE过大不会导致信息丢失。
    四种操作都是不可逆的

    二、二值形态学的组合
    dilation 和closing一致,图像扩增
    erosion和opening一致,图像缩小

    1. hit and miss
      前景hit背景miss
      在前景上把特征求出来,背景上抑制特征。(前景和背景是根据图像与SE的关系确定的)
      可以用来求取边缘点、孤立点、顶点
    2. pattern spectrum
      筛选检测图像中不同尺寸的物体有多少
      可以用来筛选器官(医学图像处理)
    3. 连续膨胀(recursive dilation)
      可以获得一系列相同形状,不同大小的图形
    4. 连续腐蚀(recursive erosion)
      有助于求取边缘膨胀
    5. 距离变换&骨架提取及重建
      距离变换(distance transform)
      当不断地erosion的时候,根据新的图像与边缘的距离可以标出不同的数字。
      根据SE的不同有三种距离变换:欧氏距离,棋盘距离,城市距离(city block distance可能翻译的不好)
      5.1骨架提取(skeleton)
      可以获取出图像的结构。
      5.2 重建

    灰度的形态学

    灰度形态学中也包括膨胀腐蚀开闭操作,但是最终的效果与二值有些不同,因为灰度形态学不仅仅是图形形状的变化,还有灰度值的变化。
    之外的二值形态学的原理是图像平移,而灰度形态学则不仅是位置的平移,还有灰度大小的变化。
    灰度的膨胀,上课的笔记
    所以可以看出膨胀后的结果就是灰度值增加了。

    1. 膨胀
      变亮(灰度值都有所增加)
    2. 腐蚀
      变暗(灰度值有所降低)
    3. 开(先腐蚀后膨胀)
      变暗
    4. 暗(先膨胀后腐蚀)
      变亮
      这张图很形象的表明了灰度的变化。在这里插入图片描述

    灰度形态学的应用

    1. 边缘求取(edge detection)(同样可以用在二值上)
      标准:膨胀-腐蚀
      外边:膨胀-原图
      内边:原图-腐蚀
    2. Top-hat transform高帽算法
      留住尖端
      WTT:原图-开操作
      BTT:闭操作-原图
      缺点:杂质过多时不易操作。SE难以确定。
    3. 分水岭算法
      3.1 conditional dilation(受限制的膨胀)
      存在mask,仅能在图片的mask内部进行膨胀。
      算法过程:1.标记种子点 2. 标记mask 3.做不断地膨胀 直到两次结果不再发生变化。
      3.2 灰度上的膨胀
      OBR
      CBR
      3.3分水岭算法
      3.3.1测地膨胀

    最终分水岭算法的效果就是可以得出边界。

    表格总结各算法功能

    算法 边缘求取 去噪
    卷积梯度:roberts,prewitt,sobel ×
    卷积平滑:高斯,中值,均值 ×
    开,闭操作 ×
    膨胀-腐蚀,原图-腐蚀,膨胀-原图 ×
    分水岭 ×

    此处应该是最关键的吧!!!(代码部位!!!)

    本人实现了灰度直方图,OTSU,entropy算法。卷积包括roberts,prewitt,sobel,高斯平滑,中值滤波,均值滤波,形态学操作包括二值形态学腐蚀膨胀开闭操作,距离变换、骨架提取及重建。灰度形态学操作等多种算法。大部分算法是自己实现的没有使用opencv的库哦。喜欢的话记得打星星哦。GUI界面的图像处理,python程序

    展开全文
  • Python GUI 打开图像并显示(一)

    万次阅读 多人点赞 2018-11-26 15:37:17
    初步学习了Python的语法,开始直接编写小的程序,巩固语法同时...from PIL import Image, ImageTk # 导入图像处理函数库 import tkinter as tk # 导入GUI界面函数库 # 创建窗口 设定大小并命名 window = tk....
  • 卫星衍生测深(SDB)GUI 主要有两种使用卫星图像创建水深预测的方法。... 所需的图像应该是多波段图像(例如RGB,RGBN或其他图像),并且GUI将自动将所有图像波段用于处理。 当您运行SDB GUI 2.xx和更低版本或在2.x
  • python图形界面GUI——pyqt5

    千次阅读 2018-10-16 11:14:44
    #图像处理作业最终的展示需要,够用就行,mark一下以便下次还要用 安装 anaconda-navigator搜索pyqt安装pyqt5即可。 一个最简单的窗口 import sys #这里我们提供必要的引用。基本控件位于pyqt5.qtwidgets模块...
  • PIL主要功能: 图像归档(Image Archives)。PIL非常适合于图像归档以及图像的批处理任务。你可以使用PIL创建缩略图,转换图像格式,打印图像等等。 图像展示(Image Display)。...图像处理(Image Process...
  • 使用python tkinter库实现了一个简易的GUI 实现基本图像处理功能。里面配合了python的opencv2等库的使用,GUI实现得比较简单,但是图像处理的基本功能都有
  • Python 实现的、带GUI界面的词云生成器。 选择文档(中文、英文均可)即可生成词云,支持自定义 停用词词典,支持自定义遮罩形状。 详细说明: “词云”就是数据可视化的一种形式,给出一段文本,根据文本中词语的...
  • Mabook 安装Python最新版本、GUI开发环境、图像处理、视频处理环境-----完整流程 1、安装 有两种安装方法: 方法一:从Mac自带的python安装,命令如下: ---------$ brew install python 如果出错的...
  • 简单图像处理软件源码分享,之前做的一个课程项目,PyQt设计GUI,图像示例自行到opencv官网下载。
  • PIL 图像处理库学习: 图像归档(Image Archives)。PIL非常适合于图像归档以及图像的批处理任务。你可以使用PIL创建缩略图,转换图像格式,打印图像等 图像展示(Image Display)。PIL较新的版本支持包括Tk ...
  • def Work_thread(self): # ch:创建显示的窗口 | en:... cv2.namedWindow(str(self.n_win_gui_id),0) cv2.resizeWindow(str(self.n_win_gui_id), 500, 500) stFrameInfo = MV_FRAME_OUT_INFO_EX() img_buff = N.
  • 利用python图像进行批量重命名和添加水印工作,代码注释详细,下载下来即可运行,做的GUI界面,适合新手学习使用
  • 面向初学者的OpenCV-Python教程 教程地址: 本仓库为教程中所用到的源码、图片和音视频...挑战篇: PyQt5编写GUI界面 / 基础篇 标题 简介 图像混合 算数运算/混合/按位运算 番外篇: 亮度与对比度 调整图片的亮度和对比度
  • PythonGUI设计第一章

    千次阅读 2019-10-26 21:03:45
    第一次打算学习GUI是在大一的时候,首此接触python在,得知Python可以做GUI图像设计的时候,就打算好好研究一番,因为那是我以为图像设计学好了,就可以深入做图像处理,但是,接触之后,我还是不是很明白GUI设计...
  • 初学OpenCV图像处理的小伙伴肯定对什么高斯函数、滤波处理、阈值二值化等特性非常头疼,这里给各位分享一个小项目,可通过摄像头实时动态查看各类图像处理的特点,也可对各位调参、测试有一定帮助,项目演示效果如下...
  • 基于Python图像去雾算法系统

    千次阅读 2020-01-13 15:39:19
    前些时间博主写了一个Python的图像去雾算法系统,准备发出来,结果因为许多事情耽误了,今天补上。 (本人才疏学浅,多有不正之处,欢迎各位大牛批评改正。) 系统分析 ...3.图像处理功能 4.图...
  • python 可以处理的任务

    2014-11-06 15:19:36
    python有丰富的库,靠这些库我们可以做很多事情,Python标准库确实很庞大。它可以帮助你处理各种工作,包括正则表达式、文档生成、 ...除了标准库以外,还有许多其他高质量的库,如wxPython、Twisted和Python图像库等等。
  • 文章目录图像处理(Getting Started with Images)读取图像 有感于人工智能发展,现在开始学习Opencv关于计算机视觉的知识,又不想捣鼓C++代码,因此决定用Python来搞,此篇开始按照官网的教程开始学习,记录自己的...
  • python编程语言,使用OpenCV实现以下功能,并自己将算法实现,与OpenCV结果做对比: 1.图像采集、输入和显示 2.软件界面的搭建 3.在界面上实现: (1)原图像显示 (2)处理结果图像显示 (3)处理功能按钮 ...
  • 一图看懂Python生态圈图像格式转换

    千次阅读 多人点赞 2019-11-29 17:57:03
    Python生态圈里,最常用的图像库是PIL——尽管已经被后来的pillow取代,但因为pillow...另外,在GUI库中,也有各自定义的图像处理机制,比如wxPyton,定义了wx.Image做为图像处理类,定义了wx.Bitmap做为图像显示类。
  • python+opencv环境 <code> show_lk = cv2.cvtColor(self.frontimage, cv2.COLOR_BGR2RGB) showImage_lk = QtGui.QImage(show_lk.data, show_lk.shape[1], show_lk.shape[0], QtGui.QImage.Format_RGB...
  • 大多数的OpenCV应用程序需要将图像作为输入参数,同时也会将图像作为返回的结果。一个交互式的OpenCV应用程序很可能就是将摄像头或者视频文件又或者图像文件又或是原始字节(raw byte)等作为输入参数,通过窗口显示...
  • Tkinter的第一个Python GUI应用程序 特征: 入口 证件号码 名称 部分 报名课程 写课程 输入ID号 按钮 添加 删除 更新 清除 搜索 显示详细资料 清除 语言:Python 使用:Python文件处理,Tkinter程序包 要更改...
  • python编程语言,用OpenCV实现以下功能: 1.图像采集、输入和显示 2.软件界面的搭建 3.在界面上实现: (1)原图像显示 (2)处理结果图像显示 (3)处理功能按钮 4.功能包括:canny边缘检测,角点检测...

空空如也

空空如也

1 2 3 4 5 ... 13
收藏数 246
精华内容 98
关键字:

python图像处理gui

python 订阅