python pil_python PIL 图像处理

编辑推荐:

本文来自于jianshu,文章介绍了pil能处理的图片类型,matplotlib标准模式以及图像通道\几何变换\裁剪等相关内容

Image读出来的是PIL的类型,而skimage.io读出来的数据是numpy格式的

#Image和skimage读图片

import Image as img

import os

from matplotlib import pyplot as plot

from skimage import io,transform

img_file1 = img.open('./CXR_png/MCUCXR_0042_0.png')

img_file2 = io.imread('./CXR_png/MCUCXR_0042_0.png')

输出可以看出Img读图片的大小是图片的(width, height);而skimage的是(height,width,

channel), [这也是为什么caffe在单独测试时要要在代码中设置:transformer.set_transpose('data',(2,0,1)),因为caffe可以处理的图片的数据格式是(channel,height,width),所以要转换数据]

#读图片后数据的大小:

print "the picture's size: ", img_file1.size

print "the picture's shape: ", img_file2.shape

the picture's

size: (4892, 4020)

the picture's shape: (4020, 4892)

#得到像素:

print(img_file1.getpixel((500,1000)), img_file2[500][1000])

print(img_file1.getpixel((500,1000)), img_file2[1000][500])

print(img_file1.getpixel((1000,500)), img_file2[500][1000])

(0, 139)

(0, 0)

(139, 139)

Img读出来的图片获得某点像素用getpixel((w,h))可以直接返回这个点三个通道的像素值

skimage读出来的图片可以直接img_file2[0][0]获得,但是一定记住它的格式,并不是你想的(channel,height,width)

在图片上面加文字

#新建绘图对象

draw = ImageDraw.Draw(image),

#获取图像的宽和高

width, height = image.size;

#** ImageFont模块**

#选择文字字体和大小

setFont = ImageFont.truetype('C:/windows/fonts/Dengl.ttf',

20),

#设置文字颜色

fillColor = "#ff0000"

#写入文字

draw.text((40, height - 100), u'广告', font=setFont,

fill=fillColor)

图片信息

如果我们想知道一些skimage图片信息

from skimage

import io, data

img = data.chelsea()

io.imshow(img)

print(type(img)) #显示类型

print(img.shape) #显示尺寸

print(img.shape[0]) #图片高度

print(img.shape[1]) #图片宽度

print(img.shape[2]) #图片通道数

print(img.size) #显示总像素个数

print(img.max()) #最大像素值

print(img.min()) #最小像素值

print(img.mean()) #像素平均值

print(img[0][0])#图像的像素值

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

print type(img)

print img.size #图片的尺寸

print img.mode #图片的模式

print img.format #图片的格式

print(img.getpixel((0,0)))#得到像素:

#img读出来的图片获得某点像素用getpixel((w,h))可以直接返回这个点三个通道的像素值

# 获取图像的灰度值范围

width = img.size[0]

height = img.size[1]

# 输出图片的像素值

count = 0

for i in range(0, width):

for j in range(0, height):

if img.getpixel((i, j))>=0 and img.getpixel((i,

j))<=255:

count +=1

print count

print(height*width)

使用python进行数字图片处理,还得安装Pillow包。虽然python里面自带一个PIL(python

images library), 但这个库现在已经停止更新了,所以使用Pillow, 它是由PIL发展而来的。

pil能处理的图片类型

pil可以处理光栅图片(像素数据组成的的块)。

通道

一个图片可以包含一到多个数据通道,如果这些通道具有相同的维数和深度,Pil允许将这些通道进行叠加

模式

1 1位像素,黑和白,存成8位的像素

L 8位像素,黑白

P 8位像素,使用调色板映射到任何其他模式

RGB 3×8位像素,真彩

RGBA 4×8位像素,真彩+透明通道

CMYK 4×8位像素,颜色隔离

YCbCr 3×8位像素,彩色视频格式

I 32位整型像素

F 32位浮点型像素

坐标

Pil采取左上角为(0,0)的坐标系统

图片的打开与显示

from PIL import

Image

img=Image.open('d:/dog.png')

img.show()

虽然使用的是Pillow,但它是由PIL fork而来,因此还是要从PIL中进行import. 使用open()函数来打开图片,使用show()函数来显示图片。

这种图片显示方式是调用操作系统自带的图片浏览器来打开图片,有些时候这种方式不太方便,因此我们也可以使用另上一种方式,让程序来绘制图片。

from PIL import

Image

import matplotlib.pyplot as plt

img=Image.open('d:/dog.png')

plt.figure("dog")

plt.figure(num=1, figsize=(8,5),)

plt.title('The image title')

plt.axis('off') # 不显示坐标轴

plt.imshow(img)

plt.show()

这种方法虽然复杂了些,但推荐使用这种方法,它使用一个matplotlib的库来绘制图片进行显示。matplotlib是一个专业绘图的库,相当于matlab中的plot,可以设置多个figure,设置figure的标题,甚至可以使用subplot在一个figure中显示多张图片。matplotlib

可以直接安装.

figure默认是带axis的,如果没有需要,我们可以关掉

plt.axis('off')

图像加标题

plt.title('The

image title')

--------------------------------------------------------------------------------

matplotlib标准模式

plt.figure(num=5,

figsize=(8,5),)

#plt.figure(num='newimage', figsize=(8,5),)

plt.title('The image title', color='#0000FF')

plt.imshow(lena) # 显示图片

plt.axis('off') # 不显示坐标轴

plt.show()

--------------------------------------------------------------------------------

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

print type(img)

print img.size #图片的尺寸

print img.mode #图片的模式

print img.format #图片的格式

图片的保存

img.save('d:/dog.jpg')

就一行代码,非常简单。这行代码不仅能保存图片,还是转换格式,如本例中,就由原来的png图片保存为了jpg图片。

--------------------------------------------------------------------------------

图像通道\几何变换\裁剪

PIL可以对图像的颜色进行转换,并支持诸如24位彩色、8位灰度图和二值图等模式,简单的转换可以通过Image.convert(mode)函数完

成,其中mode表示输出的颜色模式,例如''L''表示灰度,''1''表示二值图模式等。但是利用convert函数将灰度图转换为二值图时,是采用

固定的阈 值127来实现的,即灰度高于127的像素值为1,而灰度低于127的像素值为0。

彩色图像转灰度图

from PIL import

Image

import matplotlib.pyplot as plt

img=Image.open('d:/ex.jpg')

gray=img.convert('L')

plt.figure("beauty")

plt.imshow(gray,cmap='gray')

plt.axis('off')

plt.title('The color image to gray image')

plt.show()

使用函数convert()来进行转换,它是图像实例对象的一个方法,接受一个

mode 参数,用以指定一种色彩模式,mode 的取值可以是如下几种:

· 1 (1-bit pixels,

black and white, stored with one pixel per byte)

· L (8-bit pixels, black and white)

· P (8-bit pixels, mapped to any other mode using

a colour palette)

· RGB (3x8-bit pixels, true colour)

· RGBA (4x8-bit pixels, true colour with transparency

mask)

· CMYK (4x8-bit pixels, colour separation)

· YCbCr (3x8-bit pixels, colour video format)

· I (32-bit signed integer pixels)

· F (32-bit floating point pixels)

通道分离与合并

from PIL import

Image

import matplotlib.pyplot as plt

img=Image.open('d:/ex.jpg') #打开图像

gray=img.convert('L') #转换成灰度

r,g,b=img.split() #分离三通道

pic=Image.merge('RGB',(r,g,b)) #合并三通道

plt.figure("beauty")

plt.subplot(2,3,1), plt.title('origin')

plt.imshow(img),plt.axis('off')

plt.subplot(2,3,2), plt.title('gray')

plt.imshow(gray,cmap='gray'),plt.axis('off')

plt.subplot(2,3,3), plt.title('merge')

plt.imshow(pic),plt.axis('off')

plt.subplot(2,3,4), plt.title('r')

plt.imshow(r,cmap='gray'),plt.axis('off')

plt.subplot(2,3,5), plt.title('g')

plt.imshow(g,cmap='gray'),plt.axis('off')

plt.subplot(2,3,6), plt.title('b')

plt.imshow(b,cmap='gray'),plt.axis('off')

plt.show()

裁剪图片

从原图片中裁剪感兴趣区域(roi),裁剪区域由4-tuple决定,该tuple中信息为(left,

upper, right, lower)。 Pillow左边系统的原点(0,0)为图片的左上角。坐标中的数字单位为像素点。

from PIL import

Image

import matplotlib.pyplot as plt

img=Image.open('d:/ex.jpg') #打开图像

plt.figure("beauty")

plt.subplot(1,2,1), plt.title('origin')

plt.imshow(img),plt.axis('off')

#box变量是一个四元组(左,上,右,下)。

box=(80,100,260,300)

roi=img.crop(box)

plt.subplot(1,2,2)

plt.title('roi')

plt.imshow(roi)

plt.axis('off')

plt.show()

用plot绘制显示出图片后,将鼠标移动到图片上,会在右下角出现当前点的坐标,以及像素值。

**几何变换 **

Image类有resize()、rotate()和transpose()方法进行几何变换。

图像的缩放和旋转

dst = img.resize((128,

128))

dst = img.rotate(45) # 顺时针角度表示

转换图像

dst = im.transpose(Image.FLIP_LEFT_RIGHT)

#左右互换

dst = im.transpose(Image.FLIP_TOP_BOTTOM) #上下互换

dst = im.transpose(Image.ROTATE_90) #顺时针旋转

dst = im.transpose(Image.ROTATE_180)

dst = im.transpose(Image.ROTATE_270)

transpose()和rotate()没有性能差别。

--------------------------------------------------------------------------------

python图像处理库Image模块

创建一个新的图片

Image.new(mode,

size)

Image.new(mode, size, color)

层叠图片

层叠两个图片,img2和img2,alpha是一个介于[0,1]的浮点数,如果为0,效果为img1,如果为1.0,效果为img2。当然img1和img2的尺寸和模式必须相同。这个函数可以做出很漂亮的效果来,而图形的算术加减后边会说到。

Image.blend(img1,

img2, alpha)

composite可以使用另外一个图片作为蒙板(mask),所有的这三张图片必须具备相同的尺寸,mask图片的模式可以为“1”,“L”,“RGBA”

Image.composite(img1,

img2, mask)

--------------------------------------------------------------------------------

添加水印

添加文字水印

from PIL import

Image, ImageDraw,ImageFont

im = Image.open("d:/pic/lena.jpg").convert('RGBA')

txt=Image.new('RGBA', im.size, (0,0,0,0))

fnt=ImageFont.truetype("c:/Windows/fonts/Tahoma.ttf",

20)

d=ImageDraw.Draw(txt)

d.text((txt.size[0]-80,txt.size[1]-30), "cnBlogs",font=fnt,

fill=(255,255,255,255))

out=Image.alpha_composite(im, txt)

out.show()

添加小图片水印

from PIL import

Image

im = Image.open("d:/pic/lena.jpg")

mark=Image.open("d:/logo_small.gif")

layer=Image.new('RGBA', im.size, (0,0,0,0))

layer.paste(mark, (im.size[0]-150,im.size[1]-60))

out=Image.composite(layer,im,layer)

out.show()

--------------------------------------------------------------------------------

PIL Image 图像互转 numpy 数组

将 PIL Image 图片转换为 numpy 数组

im_array = np.array(im)

# 也可以用 np.asarray(im) 区别是 np.array() 是深拷贝,np.asarray()

是浅拷贝

更多细节见python中的深拷贝与浅拷贝

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

print img.shape

print img.dtype

将 numpy 数组转换为 PIL 图片

这里采用 matplotlib.image 读入图片数组,注意这里读入的数组是

float32 型的,范围是 0-1,而 PIL.Image 数据是 uinit8 型的,范围是0-255,所以要进行转换:

import matplotlib.image

as mpimg

from PIL import Image

lena = mpimg.imread('lena.png') # 这里读入的数据是 float32

型的,范围是0-1

im = Image.fromarray(np.uinit8(lena*255))

im.show()

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

print type(img)

print img.size #图片的尺寸

print img.mode #图片的模式

print img.format #图片的格式

print(img.getpixel((0,0))[0])#得到像素:

#img读出来的图片获得某点像素用getpixel((w,h))可以直接返回这个点三个通道的像素值

--------------------------------------------------------------------------------

图像中的像素访问

前面的一些例子中,我们都是利用Image.open()来打开一幅图像,然后直接对这个PIL对象进行操作。如果只是简单的操作还可以,但是如果操作稍微复杂一些,就比较吃力了。因此,通常我们加载完图片后,都是把图片转换成矩阵来进行更加复杂的操作。

打开图像并转化为矩阵,并显示

from PIL import

Image

import numpy as np

import matplotlib.pyplot as plt

img=np.array(Image.open('d:/lena.jpg')) #打开图像并转化为数字矩阵

plt.figure("dog")

plt.imshow(img)

plt.axis('off')

plt.title('The image title')

plt.show()

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

--------------------------------------------------------------------------------

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

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

print type(img)

print img.size #图片的尺寸

print img.mode #图片的模式

print img.format #图片的格式

print(img.getpixel((0,0))[0])#得到像素:

#img读出来的图片获得某点像素用getpixel((w,h))可以直接返回这个点三个通道的像素

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

print img.shape

print img.dtype

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

img[i,j,k]

来访问像素值。

例1:打开图片,并随机添加一些椒盐噪声

from PIL import

Image

import numpy as np

import matplotlib.pyplot as plt

img=np.array(Image.open('d:/ex.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("beauty")

plt.imshow(img)

plt.axis('off')

plt.show()

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

from PIL import

Image

import numpy as np

import matplotlib.pyplot as plt

img=np.array(Image.open('d:/pic/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]) # 倒数第二行

直接操作像素点

不但可以对每个像素点进行操作,而且,每一个通道都可以独立的进行操作。比如,将每个像素点的亮度(不知道有没有更专业的词)增大20%

out = img.point(lambda

i : i * 1.2)

#注意这里用到一个匿名函数(那个可以把i的1.2倍返回的函数)

argument * scale

+ offset

e.g

out = img.point(lambda i: i*1.2 + 10)

图像直方图

我们先来看两个函数reshape和flatten:

假设我们先生成一个一维数组:

vec=np.arange(15)

print vec

如果我们要把这个一维数组,变成一个3*5二维矩阵,我们可以使用reshape来实现

mat= vec.reshape(3,5)

print mat

现在如果我们返过来,知道一个二维矩阵,要变成一个一维数组,就不能用reshape了,只能用flatten.

我们来看两者的区别

a1=mat.reshape(1,-1)

#-1表示为任意,让系统自动计算

print a1

a2=mat.flatten()

print a2

可以看出,用reshape进行变换,实际上变换后还是二维数组,两个方括号,因此只能用flatten.

我们要对图像求直方图,就需要先把图像矩阵进行flatten操作,使之变为一维数组,然后再进行统计

画灰度图直方图

绘图都可以调用matplotlib.pyplot库来进行,其中的hist函数可以直接绘制直方图。

调用方式:

n, bins, patches

= plt.hist(arr, bins=50, normed=1, facecolor='green',

alpha=0.75)

hist的参数非常多,但常用的就这五个,只有第一个是必须的,后面四个可选

arr: 需要计算直方图的一维数组

bins: 直方图的柱数,可选项,默认为10

normed: 是否将得到的直方图向量归一化。默认为0

facecolor: 直方图颜色

alpha: 透明度

返回值 :

n: 直方图向量,是否归一化由参数设定

bins: 返回各个bin的区间范围

patches: 返回每个bin里面包含的数据,是一个list

from PIL import

Image

import numpy as np

import matplotlib.pyplot as plt

img=np.array(Image.open('d:/pic/lena.jpg').convert('L'))

plt.figure("lena")

arr=img.flatten()

n, bins, patches = plt.hist(arr, bins=256, normed=1,

facecolor='green', alpha=0.75)

plt.title('The image title')

plt.show()

彩色图片直方图

实际上是和灰度直方图一样的,只是分别画出三通道的直方图,然后叠加在一起。

from PIL import

Image

import numpy as np

import matplotlib.pyplot as plt

src=Image.open('d:/ex.jpg')

r,g,b=src.split()

plt.figure("lena")

ar=np.array(r).flatten()

plt.hist(ar, bins=256, normed=1,facecolor='r',edgecolor='r',hold=1)

ag=np.array(g).flatten()

plt.hist(ag, bins=256, normed=1, facecolor='g',edgecolor='g',hold=1)

ab=np.array(b).flatten()

plt.hist(ab, bins=256, normed=1, facecolor='b',edgecolor='b')

plt.title('The image title')

plt.show()

由此可见,matplotlib的画图功能是非常强大的,直方图只是其中非常小的一部分,更多的请参看官方文档:

--------------------------------------------------------------------------------

Python如何读取指定文件夹下的所有图像

'''

Load the image files form the folder

input:

imgDir: the direction of the folder

imgName:the name of the folder

output:

data:the data of the dataset

label:the label of the datset

'''

def load_Img(imgDir,imgFoldName):

imgs = os.listdir(imgDir+imgFoldName)

imgNum = len(imgs)

data = np.empty((imgNum,1,12,12),dtype="float32")

label = np.empty((imgNum,),dtype="uint8")

for i in range (imgNum):

img = Image.open(imgDir+imgFoldName+"/"+imgs[i])

arr = np.asarray(img,dtype="float32")

data[i,:,:,:] = arr

label[i] = int(imgs[i].split('.')[0])

return data,label

调用方式

craterDir = "./data/CraterImg/Adjust/"

foldName = "East_CraterAdjust12"

data, label = load_Img(craterDir,foldName)

--------------------------------------------------------------------------------

Python图形图像处理库ImageEnhance模块图像增强

可以使用ImageEnhance模块,其中包含了大量的预定义的图片加强方式

加强器包括,色彩平衡,亮度平衡,对比度,锐化度等。通过使用这些加强器,可以很轻松的做到图片的色彩调整,亮度调整,锐化等操作,google

picasa中提供的一些基本的图片加强功能都可以实现。

颜色加强color用于调整图片的色彩平衡,相当于彩色电视机的色彩调整。这个类实现了上边提到的接口的enhance方法。

ImageEnhance.Color(img)#获得色彩加强器实例

然后即可使用enhance(factor)方法进行调整。

亮度加强brightness用于调整图片的明暗平衡。

ImageEnhance.Brightness(img)#获得亮度加强器实例

factor=1返回一个黑色的图片对象,0返回原始图片对象

对比度加强contrast用于调整图片的对比度,相当于彩色电视机的对比度调整。

ImageEnhance.Contrast(image)

#获得对比度加强器实例

import ImageEnhance

enh = ImageEnhance.Contrast(im)

enh.ehhance(1.5).show("50% more contrast")

锐化度加强sharpness用于锐化/钝化图片。

ImageEnhance.Sharpness(image)

#返回锐化加强器实例

应该注意的是锐化操作的factor是一个0-2的浮点数,当factor=0时,返回一个完全模糊的图片对象,当factor=1时,返回一个完全锐化的图片对象,factor=1时,返回原始图片对象

--------------------------------------------------------------------------------

Python图像处理库ImageChops模块

这个模块主要包括对图片的算术运算,叫做通道运算(channel operations)。这个模块可以用于多种途径,包括一些特效制作,图片整合,算数绘图等等方面。

Invert:

ImageChops.invert(image)

图片反色,类似于集合操作中的求补集,最大值为Max,每个像素做减法,取出反色.

公式

out = MAX - image

lighter:

ImageChops.lighter(image1,

image2)

darker:

ImageChops.darker(image1,

image2)

difference:

ImageChops.difference(image1,

image2)

求出两张图片的绝对值,逐像素的做减法

multiply:

ImageChops.multiply(image1,

image2)

将两张图片互相叠加,如果用纯黑色与某图片进行叠加操作,会得到一个纯黑色的图片。如果用纯白色与图片作叠加,图片不受影响。

计算的公式如下公式

out = img1 *

img2 / MAX

screen:

ImageChops.screen(image1,

image2)

先反色,后叠加。

公式

out = MAX -

((MAX - image1) * (MAX - image2) / MAX)

add:

ImageChops.add(img1,

img2, scale, offset)

对两张图片进行算术加法,按照一下公式进行计算

公式

out = (img1+img2)

/ scale + offset

如果尺度和偏移被忽略的化,scale=1.0, offset=0.0即

out = img1 + img2

subtract:

ImageChops.subtract(img1,

img2, scale, offset)

对两张图片进行算术减法:

公式

out = (img1-img2)

/ scale + offset

--------------------------------------------------------------------------------

Python图形图像处理库ImageFilter模块图像滤镜

ImageFilter是PIL的滤镜模块,通过这些预定义的滤镜,可以方便的对图片进行一些过滤操作,从而去掉图片中的噪音(部分的消除),这样可以降低将来处理的复杂度(如模式识别等)。

滤镜名称 含义

ImageFilter.BLUR 模糊滤镜

ImageFilter.CONTOUR 轮廓

ImageFilter.EDGE_ENHANCE 边界加强

ImageFilter.EDGE_ENHANCE_MORE 边界加强(阀值更大)

ImageFilter.EMBOSS 浮雕滤镜

ImageFilter.FIND_EDGES 边界滤镜

ImageFilter.SMOOTH 平滑滤镜

ImageFilter.SMOOTH_MORE 平滑滤镜(阀值更大)

ImageFilter.SHARPEN 锐化滤镜

要使用PIL的滤镜功能,需要引入ImageFilter模块

import Image,

ImageFilter

def inHalf(img):

w,h = img.size

return img.resize((w/2, h/2))

def filterDemo():

img = Image.open("sandstone_half.jpg")

#img = inHalf(img)

imgfilted = img.filter(ImageFilter.SHARPEN)

#imgfilted.show()

imgfilted.save("sandstone_sharpen.jpg")

if __name__ == "__main__":

filterDemo()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/503756.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

w7电脑蓝屏怎么解决_怎么解决0x0000007b电脑蓝屏 解决0x0000007b电脑蓝屏方法【详细步骤】...

电脑蓝屏死机报错 0x0000007b 是什么情况呢?0x0000007b电脑蓝屏通常情况是硬盘的存储控制器驱动加载错误导致故障。对于这种情况就要有相应解决措施&#xff0c;下面来看看具体解决方法。导致驱动加载错误的情况可能有以下三种情况&#xff1a;1.无法自动识别硬盘控制器&#…

判断二叉树是否是完全二叉树c语言_完全二叉树的节点数,你真的会算吗?

读完本文&#xff0c;你可以去力扣拿下如下题目&#xff1a;222.完全二叉树的节点个数-----------如果让你数一下一棵普通二叉树有多少个节点&#xff0c;这很简单&#xff0c;只要在二叉树的遍历框架上加一点代码就行了。但是&#xff0c;如果给你一棵完全二叉树&#xff0c;让…

怎样用计算机记账,仓管员怎么用电脑记账?简单实用的电脑操作方式一览!

仓库管理中&#xff0c;有很多的流水账需要进行记录&#xff0c;物品的收发&#xff0c;物品的采购等等&#xff0c;传统的仓库管理&#xff0c;多用人工方式等记录&#xff0c;效率相对较低&#xff0c;出现差错率相对较高&#xff0c;如今&#xff0c;多采用软件及电脑等方式…

免密登录关闭_微信最新提醒:这个设置再不关闭,你的微信账号就能被别人“免密登录”!...

哈喽大家好&#xff0c;我是你们的老朋友姗姗&#xff0c;每天与大家分享不一样的生活知识&#xff0c;阅读本文前&#xff0c;请您先点击上面的“姗姗时尚思”&#xff0c;再点击“关注”&#xff0c;这样您就可以继续免费收到文章了&#xff0c;希望可以多鼓励一下小编&#…

查看计算机用户修改密码时间,使用ldap语句查询某时间后没改密码的用户

经常使用Active Directory用户和计算机控制台的我们会发现&#xff0c;在左侧控制台树的最上面有一个“保存的查询”&#xff0c;通过新建查询可以看到可以通过图形界面创建一些简单的查询操作。那么我们如果有一些特殊的查询要做要怎么来实现呢。这里我们把《查询某个时间点后…

python连接oracle数据库_深入理解Python3.6连接Oracle数据库

Python3.6连接Oracle数据库的方法详解 本文实例讲述了Python3.6连接Oracle数据库的方法。分享给大家供大家参考&#xff0c;具体如下&#xff1a; 下载cx_Oracle模块模块&#xff1a; https://pypi.python.org/pypi/cx_Oracle/5.2.1#downloads 这里下载的是源码进行安装 [rooto…

rfid阅读器的主要任务_RFID阅读器(读写器)的应用领域及其如何使用?

RFID阅读器(读写器)的应用领域及其如何使用&#xff1f;来源&#xff1a;本站 | 作者:admin | 发表于&#xff1a;2018-05-25 | 浏览次数&#xff1a;2181首先来了解一下RFID系统的构成&#xff1a;①电子标签&#xff0c;由芯片和标签天线组成&#xff0c;通过电感偶合或电磁…

计算机网络走向系统化 科学化,第六章计算机网络与INTERNET 应用习题

第六章计算机网络与Internet 应用一&#xff0e;是非题1.按覆盖地理范围的大小&#xff0c;可以吧计算机网络分为广域网&#xff0c;城域网。A 、对B、错2组建一局域网时&#xff0c;网卡不是必不可少的网络通信硬件。A、对B、错3.通信和资源共享是计算机网络最基本和最重要的特…

847方波放大电路_分析运放7大经典电路,有图有真相,详解每个电路原理!

运放的基本分析方法&#xff1a;虚断&#xff0c;虚短。对于不熟悉的运放应用电路&#xff0c;就使用该基本分析方法。运放是用途广泛的器件&#xff0c;接入适当的反馈网络&#xff0c;可用作精密的交流和直流放大器、有源滤波器、振荡器及电压比较器。1&#xff0c;运放在有源…

python实现什么功能_Python 实现WC功能

项目要求 基本要求 -c 统计文件字符数 (实现) -w 统计文件词数 &#xff08;实现&#xff09; -l 统计文件行数&#xff08;实现&#xff09; 扩展功能 -s 递归处理目录下符合条件得文件&#xff08;实现&#xff09; -a 返回文件代码行 / 空行 / 注释行&#xff08;实现&#…

家用计算机来源,美计算机专家称BBS才是博客真正起源

美国计算机科学家莱斯恩斯特(Les Earnest)近日在接受国外媒体采访时表示&#xff0c;早在互联网面世之前&#xff0c;博客的原型就已经出现。恩斯特曾经在斯坦福大学计算机科学系担任高级研究科学家&#xff0c;目前已经退休。上世纪70年代初&#xff0c;他发明了计算机程序“f…

websocket底层处理粘包_Socket解决粘包问题1

粘包是指发送端发送的包速度过快&#xff0c;到接收端那边多包并成一个包的现象&#xff0c;比如发送端连续10次发送1个字符a&#xff0c;因为发送的速度很快&#xff0c;接收端可能一次就收到了10个字符aaaaaaaaaa&#xff0c;这就是接收端的粘包。可能我们在平时练习时没觉的…

python数据处理常用函数_Python大数据处理模块Pandas

Pandas使用一个二维的数据结构DataFrame来表示表格式的数据&#xff0c;相比较于Numpy&#xff0c;Pandas可以存储混合的数据结构&#xff0c;同时使用NaN来表示缺失的数据&#xff0c;而不用像Numpy一样要手工处理缺失的数据&#xff0c;并且Pandas使用轴标签来表示行和列 1、…

计算机学院校友论坛,西工大计算机学院北京校友论坛成立并举办第一次活动

2021年5月16日&#xff0c;西北工业大学计算机学院北京校友论坛成立会议暨第一次活动在北京召开&#xff0c;在京计算机学院院友齐聚一堂共同研讨计算机领域新技术、新发展&#xff0c;共叙同窗情&#xff0c;共谋新未来。西北工业大学校友总会办公室副主任刘江、计算机学院院长…

python爬虫有学c的必要吗_可以一边学python爬虫一边学c语言吗?

数据结2113构和算法并不是一门语言&#xff0c;你可以说有了Python 不用5261学C或者4102C了&#xff0c;但是不能说不需要学数据结构了&#xff0c;因为它是所有语1653言的基础。看你学Python的用途&#xff0c;如果你学Python并不深入&#xff0c;或者用来日常的办公、写个小爬…

python每个字符后添加空格_python实现指定字符串补全空格的方法

有什么方法可以指定字符串长度&#xff0c;不够的自动补空格char定义的是一个半角字符。 当人心变成市场&#xff0c;当市场变成战场&#xff0c;战场埋葬多少理想。char[]定义的是一个不定长的数组&#xff0c;实际上是指针&#xff0c;用前要初始化。不过某些编程环境可能会根…

邢台职业技术学院计算机系宿舍,邢台职业技术学院宿舍条件怎么样 男生女生宿舍图片...

大学马上就要开学了&#xff0c;邢台职业技术学院宿舍条件怎么样&#xff0c;有没有独立卫浴和空调&#xff0c;宿舍环境如何&#xff0c;想必是邢台职业技术学院大一新生最想知道的。小编整理了《邢台职业技术学院宿舍条件怎么样男生女生宿舍图片》一文&#xff0c;供大一新生…

c位边上还有什么位_c位是什么意思?C位说法的由来是什么?c位旁边二个位置叫什么?...

今天我们要讲的词是——c位。这个词想必大家一定耳熟能详&#xff0c;哪怕不知道具体的含义&#xff0c;也多多少少听过身边的人说上那么几句。特别是在追星族或者是微博上&#xff0c;总能看到“c位”“c位出道”这一类的词语。所以说&#xff0c;c位到底是什么意思呢?C位当中…

常用计算机 启动bios,详解各种电脑开机怎么进入bios设置

开机怎么进入bios呢?电脑品牌上百种&#xff0c;每种品牌又有各种类型&#xff0c;BIOS的类型成百上千&#xff0c;bios设置方法也不计其数。BIOS是整个系统中最神密最难掌握的&#xff0c;开机怎么进入bios?bios设置方法真的是一件伤脑筋的事。针对以上的问题&#xff0c;小…

python测开面试题_python十道经典面试题,测试你的python功底!

来源&#xff1a;python学习专栏 第一题&#xff0c;对象的类属性指向类对象class A(): def show(self): print( A_show ) class B(): def show(self): print( B_show ) obj B() obj.show() #这样我们能够正常调用 #那么我们能不能 #obj.show() #我们想调用A中的show 我们看一下…