python3 图像处理_python图像处理如何去除图像边缘不完整的图像 - CSDN
  • 最近需要学习python图像处理方法,在这里简单的总结一下自己学到的一些图像处理的方法把~ 1.Python PIL库读取图像 import PIL from PIL import Image im = Image.open(filepath) 2.简单进行图像旋转 out = ...

    最近需要学习python的图像处理方法,在这里简单的总结一下自己学到的一些图像处理的方法把~

    1.Python PIL库读取图像

    import PIL
    from PIL import Image
    
    im = Image.open(filepath)

    2.简单进行图像旋转

    out = im.rotate(270) #这里输入的是旋转角度
    out = im.transpose(Image.ROTATE_270)

    3.在PIL中还可以吧RGB图像的R,G,B分离出来使用的呢;例如:

    r,g,b = im.spilt()
    im = Image.merge("RGB",(r,b,g))
    #这样R,G,B就调换成了R,B,G来使用了,也就是说B的值当R来使用这个意思
    4、图像增强,可以增强一下对比度
    from PIL import ImageEnhance as ie
    enh = ie.Contrast(image)
    enh.enhance(1.3).show("30% enhance")

    5、利用Image模块还可以创建thumnail

    import glob
    for infile in glob.glob("*.jpg"):
        file, ext = os.splitext(infile)
        im = Image.open(infile)
        im.thumbnail((128, 128), Image.ANTIALIAS)
        im.save(file + ".thumbnail", "JPEG")
    

    下面来介绍一下Image模块下的一些函数:

    1=》Image.new(mode,size)/Image.new(mode,size,color)

    这个是新创建一张图片

    2=》Image.open(infile)/Image.open(infile,mode)

    这个是打开一张图片,打开的这张图片呢,在你对这张图片进行操作之前是不会读取进来的,在你进行操作的时候就读进来

    如果指定了mode的话,那一定是“r“

    3=》Image.blend(image1,image2,alpha)

    out = image * (1-alpha) + image2 * alpha

    看看out你就知道了什么意思了,当alpha是0时,输出的就是image1,当alpha是1时,输出的就是image2

    但是两个图像的大小需要一致的

    4=》Image.composite(image1,image2,mask)

    利用mask当做是alpha,创建一张在image1,image2之间的新图像

    5=》Image.eval(function,image)

     

    6=>Image.fromstring(mode,size,data)/Image.fromstring(mode,size,data,decoder,parameters)

    对于第一个,就是从一个string中的像素数据中创建图像,使用的解码器是”raw“;第二个就是自选decoder了

    7=>Image.merge(mode,bands)

     

     

     

    展开全文
  • 本节主要讲解图像的一些基础知识,以及图像的加载和获得属性,最后将会学到 OpenCV 摄像头的简单使用。 二、图像基本知识 1、图像是什么: 图像是客观对象的一种相似性的、生动性的描述或写真,是人类社会活动...

    一、本节简述


             本节主要讲解图像的一些基础知识,以及图像的加载和获得属性,最后将会学到 OpenCV 摄像头的简单使用。


    二、图像基本知识

            1、图像是什么:

                        图像是客观对象的一种相似性的、生动性的描述或写真,是人类社会活动中最常用的信息载体。或者说图像是客观对象的一种表示,它包含了被描述对象的有关信息。     

              2、图像基本属性有哪些:

                          通道数目、高与宽、像素数据、图像类型


    三、示例代码

     

    import cv2 as cv
    
    def video_demo():
        #打开0号摄像头,捕捉该摄像头实时信息
        #参数0代表摄像头的编号
        #有多个摄像头的情况下,可用编号打开摄像头
        #若是加载视频,则将参数改为视频路径,cv.VideoCapture加载视频是没有声音的,OpenCV只对视频的每一帧进行分析
       capture=cv.VideoCapture(0)
        while(True):
            #获取视频的返回值 ref 和视频中的每一帧 frame
            ref,frame=capture.read()
            
            #加入该段代码将使拍出来的画面呈现镜像效果
            #第二个参数为视频是否上下颠倒 0为上下颠倒 1为不进行上下颠倒
            frame= cv.flip(frame,1)
            
            #将每一帧在窗口中显示出来
            cv.imshow("video",frame)
            
            #设置视频刷新频率,单位为毫秒
            #返回值为键盘按键的值
            c=cv.waitKey(50)
            
            #27为 Esc 按键的返回值
            if c==27:
                break
    
    
    def get_image_info(image):
        #图像类别
        #图像类别为numpy.dnarray,即n维数组
        print(type(image))
        
        #获取图像通道数目
        #返回值如:(900, 640, 3)
        # 这三个数字代表图片纵向像素、横向像素和通道数目
        print(image.shape)
        
        #图像总大小,计算公式为:长*宽*通道数目
        print(image.size)
        
        #每个像素点所占字节位数
        print(image.dtype)
    
    
    
    #读入图片文件
    src=cv.imread('textImg.jpg')
    get_image_info(src)
    #将图片保存为 testSave.png
    cv.imwrite("testSave.png",src)
    video_demo()
    #等待用户操作
    cv.waitKey(0)
    #释放所有窗口
    cv.destroyAllWindows()

     

     

     

    展开全文
  • 一、所需软件 本教程需要一下软件: ... Python3 和 PyCharm的安装这里就不详述的,只需到对应的官方网站下载安装即可,需注意的是Python 要安装Python3以上版本。 注意:Python 3 安装完后,在命令行工具内输...

    一、所需软件

    本教程需要一下软件:

    • PyCharm 2017.2.3  (其他版本也可)
    • OpenCV 3.3
    • Python 3
    • Windows 7以上版本

    二、环境配置

            Python3 和 PyCharm的安装这里就不详述的,只需到对应的官方网站下载安装即可,需注意的是Python 要安装Python3以上版本。

    注意:Python 3 安装完后,在命令行工具内输入python,若报错,则表明python 没有将python.exe 路径写入到系统环境路径中。加入即可。

            这里要讲一下 OpenCV 的安装。

    1.  打开 Windows 命令行输入:pip install opencv-python,安装opencv,这个是必须要安装的,安装时常依每个人的网速而定。
    2. 安装完 opencv 后,在命令行输入:pip install pytesseract ,pytesseract这是一个开源的OCR Python 扩展,本教程将在后面用到。
    3. 完成以上两步,本教程的环境即配置完成。

    注意:OpenCV 还有一个 opencv-contrib-python 的扩展库,这个扩展库可以实现更加复杂的图像处理。

    三、简单DEMO

    打开PyCharm,新建项目,在新建的项目下创建一个名字是“test.py”的文件,在文件中输入一下代码:

     

    import cv2 as cv
    
    #读入图片文件
    src=cv.imread('textImg.jpg')
    #创建一个名字加 “ input image ” 的窗口,
    # 窗口可以根据图片大小自动调整
    cv.namedWindow('input image',cv.WINDOW_AUTOSIZE)
    #在窗口显示图片
    cv.imshow('input image',src)
    
    #等待用户操作
    cv.waitKey(0)
    #释放所有窗口
    cv.destroyAllWindows()

    运行上面代码后,即可看到图片,就如下面这样:

     

    觉得不错打赏一下

     

    展开全文
  • python中利用numpy库和scipy库来进行各种数据操作和科学计算。...以后,只要是在python中进行数字图像处理,我们都需要导入这些包: from PIL import Image import numpy as np import matplotlib.pyplot as...

    python中利用numpy库和scipy库来进行各种数据操作和科学计算。我们可以通过pip来直接安装这两个库

    pip install numpy
    pip install scipy

    以后,只要是在python中进行数字图像处理,我们都需要导入这些包:

    from PIL import Image
    import numpy as np
    import matplotlib.pyplot as plt

    打开当前目录图像并转化为矩阵并显示

    from PIL import Image
    import numpy as np
    import matplotlib.pyplot as plt
    img=np.array(Image.open('lena.jpg'))  #打开当前目录图像并转化为数字矩阵
    plt.figure("lena")
    plt.imshow(img)
    plt.axis('off')
    plt.show()

    调用numpy中的array()函数就可以将PIL对象转换为数组对象。

    查看图片信息,可用如下的方法:

    print img.shape  
    print img.dtype 
    print img.size 
    print type(img)

    如果是RGB图片,那么转换为array之后,就变成了一个rows*cols*channels的三维矩阵,因此,我们可以使用

    img[i,j,k]来访问像素值。

    打开图片,并随机添加一些噪声

    from PIL import Image
    import numpy as np
    import matplotlib.pyplot as plt
    img=np.array(Image.open('lena.jpg'))
    
    #随机生成5000个随机噪声点
    rows,cols,dims=img.shape
    for i in range(5000):
        x=np.random.randint(0,rows)
        y=np.random.randint(0,cols)
        img[x,y,:]=255
        
    plt.figure("lena")
    plt.imshow(img)
    plt.axis('off')
    plt.show()

     

    简单灰度化处理,R,G,B分量均用R分量代替

    from PIL import Image
    import numpy as np
    img = Image.open("lena.jpg")
    img_array = np.array(img)
    arr1 = img_array[:]
    print(arr1.shape)
    for x in range(1,arr1.shape[0]):
        for y in range(1,arr1.shape[1]):
            a = img_array[x,y][0]
            b = img_array[x,y][1]
            c = img_array[x,y][2]
            arr1[x,y] =(a,a,a)
            #arr1[x, y] = (b, b, b)
            ##arr1[x, y] = (c, c, c)
    image_arr = Image.fromarray(arr1)
    image_arr.show()

    将lena图像二值化,像素值大于128的变为1,否则变为0

    from PIL import Image
    import numpy as np
    import matplotlib.pyplot as plt
    img=np.array(Image.open('lena.jpg').convert('L'))
    
    rows,cols=img.shape
    for i in range(rows):
        for j in range(cols):
            if (img[i,j]<=128):
                img[i,j]=0
            else:
                img[i,j]=1
                
    plt.figure("lena")
    plt.imshow(img,cmap='gray')
    plt.axis('off')
    plt.show()

     

    如果要对多个像素点进行操作,可以使用数组切片方式访问。切片方式返回的是以指定间隔下标访问 该数组的像素值。

    下面给出一个有关灰度图像的一些例子:

     

    img[i,:] = im[j,:] # 将第 j 行的数值赋值给第 i 行
    
    img[:,i] = 100 # 将第 i 列的所有数值设为 100
    
    img[:100,:50].sum() # 计算前 100 行、前 50 列所有数值的和
    
    img[50:100,50:100] # 50~100 行,50~100 列(不包括第 100 行和第 100 列)
    
    img[i].mean() # 第 i 行所有数值的平均值
    
    img[:,-1] # 最后一列
    
    img[-2,:] (or im[-2]) # 倒数第二行

     

     

    展开全文
  • 简单的说就是对图像感兴趣的区域,机器视觉、图像处理中,从被处理的图像以方框、圆、椭圆、不规则多边形等方式勾勒出需要处理的区域,称为感兴趣区域,ROI。举个例子来说:有一副图片,图片上有各种动物i,但是你只...

    一、本节简介

    本节主要讲解ROI的图像中特定区域的提取和合并图片


    二、什么是ROI

    简单的说就是对图像感兴趣的区域,机器视觉、图像处理中,从被处理的图像以方框、圆、椭圆、不规则多边形等方式勾勒出需要处理的区域,称为感兴趣区域,ROI。举个例子来说:有一副图片,图片上有各种动物i,但是你只喜欢图片里的狗,那么这个狗所在的区域就是感兴趣的区域(ROI)。

    三、示例

     
    src=cv.imread('textImg.jpg')
    cv.namedWindow('input image',cv.WINDOW_AUTOSIZE)
    cv.imshow('input image',src)
    
    #高度从42像素开始到282像素
    #宽度从184像素开始到355像素
    #高度起始位置是从图片的顶部算起,宽度起始位置是从图片的左侧算起
    #本例中的起始位置和结束位置是通过PhotoShop 测量出来的,在实际应用中这两个位置是通过算法计算出来的
    face=src[42:282,184:355]
    #效果见图1,我们取出了原图的人脸
    cv.imshow("取出的图像",face)
    
    #将取出的区域改变为灰度图像
    gray=cv.cvtColor(face,cv.COLOR_BGR2GRAY)
    
    #将灰度图像变为RGB图像
    #这里改变色彩空间的原因是灰度图像是单通道的,原图是三通道的,无法合并
    #所以需要先转换为三通道的RGB色彩空间
    backface=cv.cvtColor(gray,cv.COLOR_GRAY2BGR)
    
    #将取出并处理完的图像和原图合并起来
    src[42:282,184:355]=backface
    #效果见图2
    cv.imshow("合并后的图像",src)
    
    
    cv.waitKey(0)
    cv.destroyAllWindows() 
    

    图一(原图和人脸图对比)

     

    图二(合并后的图片)

    觉得不错打赏一下

     

    展开全文
  • 本次的基础:Image图片基本处理库和ImageFilter滤镜库 一、图片处理 from PIL import Image,ImageFilter # 1、打开图片 img = Image.open(r'E:\python\material\img1.jpg') # 2、更改图像模式 img = img.convert...
  • ImageFilter模块包含预定义...这个库的3.3.x版本提供下面一组预定义图像的增强过滤器: 1.BLUR 2.CONTOUR 3.DETALL 4.EDGE_ENHANCE 5.EDGE_EHANCE_MORE 6.EMBOSS 7.FIND_EDGES 8.SMOOTH 9.SMOOTH_MORE 10....
  • Python图像处理

    2008-01-18 12:11:00
    Python图像处理 最近在做一件比较 evil 的事情——验证码识别,以此来学习一些新的技能。因为我是初学,对图像处理方面就不太了解了,欲要利吾事,必先利吾器,既然只是做一下实验,那用 Python 来作原型开发再...
  • Python数字图像处理

    2017-06-22 20:18:26
    转:宁静家园python数字图像处理(1):环境安装和配置python数字图像处理(2):图像的读取、显示与保存python数字图像处理3):图像像素的访问与裁剪python数字图像处理(4):图像数据类型及颜色空间转换python...
  • 第 1 章 基本的图像操作和处理本章讲解操作和处理图像的基础知识,将通过大量...1.1 PIL:Python图像处理类库PIL(Python Imaging Library Python,图像处理类库)提供了通用的图像处理功能,以及大量有用的基本图...
  • 该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门、OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子、图像增强技术、图像分割等,后期结合深度学习研究图像识别、图像分类应用。...
  • 本文主要介绍了一些简单易懂最常用的Python图像处理库 当今世界充满了各种数据,而图像是其中高的重要组成部分。然而,若想其有所应用,我们需要对这些图像进行处理。图像处理是分析和操纵数字图像的过程,旨在提高...
  • 目录 ...初学OpenCV图像处理的小伙伴肯定对什么高斯函数、滤波处理、阈值二值化等特性非常头疼,这里给各位分享一个小项目,可通过摄像头实时动态查看各类图像处理的特点,也可对各位调参、测试...
  • 提到图像处理第一个想到的库就是PIL,全称Python Imaging Library Python图像处理类库,它提供了大量的图像操作,比如图像缩放,裁剪,贴图,模糊等等,很多时候它需要配合numpy库一起使用 1.open() 你可以使用...
  • Python中的图像处理

    2018-03-03 22:27:15
    第 1 章 基本的图像操作和处理本章讲解操作和处理图像的基础知识,将通过大量...1.1 PIL:Python图像处理类库PIL(Python Imaging Library Python,图像处理类库)提供了通用的图像处理功能,以及大量有用的基本图...
  • 前面一篇文章我讲解了Python图像量化、采样处理及图像金字塔。本文主要讲解图像傅里叶变换的相关内容,在数字图像处理中,有两个经典的变换被广泛应用——傅里叶变换和霍夫变换。其中,傅里叶变换主要是将时间域上的...
  • python 图像处理

    2018-06-19 14:51:01
    转自:点击打开链接第 1 章 基本的图像操作和处理本章讲解操作和处理图像的基础知识,将通过大量...1.1 PIL:Python图像处理类库PIL(Python Imaging Library Python,图像处理类库)提供了通用的图像处理功能,以...
  • 该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门、OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子、图像增强技术、图像分割等,后期结合深度学习研究图像识别、图像分类应用。...
  • python数字图像处理

    2018-09-12 20:03:41
    这里博客是自己做的个系统整理,主要说的是python在数字图像处理方面的应用,主要用到的库有PIL和skimage PIL库 1、用python简单处理图片:打开、显示、保存图像 2、用python简单处理图片:图像通道、几何变换...
  • python数字图像处理-图像噪声与去噪算法图像噪声椒盐噪声概述: 椒盐噪声(salt & pepper noise)是数字图像的一个常见噪声,所谓椒盐,椒就是黑,盐就是白,椒盐噪声就是在图像上随机出现黑色白色的像素。...
1 2 3 4 5 ... 20
收藏数 119,082
精华内容 47,632
关键字:

python3 图像处理