Fifth commit
This commit is contained in:
parent
3d78b6edb3
commit
493dc7062a
@ -4,13 +4,17 @@
|
|||||||
# @Email : derighoid@gmail.com
|
# @Email : derighoid@gmail.com
|
||||||
# @File : Blue_noise_sampling.py
|
# @File : Blue_noise_sampling.py
|
||||||
# @Software: PyCharm
|
# @Software: PyCharm
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
import matplotlib
|
||||||
import matplotlib.pyplot as plt
|
import matplotlib.pyplot as plt
|
||||||
import numpy as np
|
import numpy as np
|
||||||
from PIL import Image
|
from PIL import Image
|
||||||
|
|
||||||
'''
|
'''
|
||||||
|
最近邻插值法:
|
||||||
|
在放大图像时,多出来的像素点由最近邻的像素点构成
|
||||||
|
计算新图形(放大后或缩小后)的坐标点像素值对应于原图像中哪一个像素点填充的。
|
||||||
srcX=newX*(srcW/newW)
|
srcX=newX*(srcW/newW)
|
||||||
srcY=newY*(srcH/newH)
|
srcY=newY*(srcH/newH)
|
||||||
src是原图,dst是新图,原来的图像宽度/高度除以新图像的宽度/高度可以得到缩放比例,
|
src是原图,dst是新图,原来的图像宽度/高度除以新图像的宽度/高度可以得到缩放比例,
|
||||||
@ -57,3 +61,6 @@ def showImage(picPath):
|
|||||||
plt.imshow(image1)
|
plt.imshow(image1)
|
||||||
plt.show()
|
plt.show()
|
||||||
return image1
|
return image1
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
75
GUI.py
75
GUI.py
@ -7,7 +7,6 @@
|
|||||||
import os
|
import os
|
||||||
import tkinter
|
import tkinter
|
||||||
import tkinter.filedialog
|
import tkinter.filedialog
|
||||||
import tkinter.messagebox # 弹窗库
|
|
||||||
|
|
||||||
import PIL
|
import PIL
|
||||||
import numpy as np
|
import numpy as np
|
||||||
@ -15,16 +14,18 @@ import requests
|
|||||||
from PIL import Image, ImageTk
|
from PIL import Image, ImageTk
|
||||||
|
|
||||||
root = tkinter.Tk()
|
root = tkinter.Tk()
|
||||||
root.title = 'new'
|
|
||||||
root.geometry('640x500')
|
|
||||||
|
|
||||||
|
root.title("基于Python的图像处理")
|
||||||
|
|
||||||
|
root.geometry('640x500')
|
||||||
|
root.resizable(width=0, height=0)
|
||||||
|
|
||||||
# 文件选择
|
# 文件选择
|
||||||
def choose_fiel():
|
def choose_fiel():
|
||||||
selectFileName = tkinter.filedialog.askopenfilename(title='选择文件') # 选择文件
|
selectFileName = tkinter.filedialog.askopenfilename(title='选择文件') # 选择文件
|
||||||
e.set(selectFileName)
|
e.set(selectFileName)
|
||||||
|
|
||||||
|
#文件选择标签
|
||||||
label1 = tkinter.Label(root, text="文件路径:")
|
label1 = tkinter.Label(root, text="文件路径:")
|
||||||
label1.place(x=40, y=0)
|
label1.place(x=40, y=0)
|
||||||
|
|
||||||
@ -37,12 +38,13 @@ lable2.place(x=40, y=30)
|
|||||||
|
|
||||||
# 设置输入框
|
# 设置输入框
|
||||||
entry = tkinter.Entry(root, width=60)
|
entry = tkinter.Entry(root, width=60)
|
||||||
|
#设置默认值
|
||||||
entry.insert(0,
|
entry.insert(0,
|
||||||
"https://tse2-mm.cn.bing.net/th/id/OIP-C.fT7uKiT7V7YO2PPINFeOdQHaJ4?w=186&h=248&c=7&r=0&o=5&dpr=1.25&pid=1.7")
|
"https://tse2-mm.cn.bing.net/th/id/OIP-C.fT7uKiT7V7YO2PPINFeOdQHaJ4?w=186&h=248&c=7&r=0&o=5&dpr=1.25&pid=1.7")
|
||||||
entry.place(x=100, y=30)
|
entry.place(x=100, y=30)
|
||||||
|
|
||||||
# 选择文件按钮
|
# 选择文件按钮
|
||||||
submit_button = tkinter.Button(root, text="选择文件", command=choose_fiel)
|
submit_button = tkinter.Button(root, text="选择文件", command=choose_fiel,activeforeground="red")
|
||||||
submit_button.place(x=520, y=0)
|
submit_button.place(x=520, y=0)
|
||||||
|
|
||||||
|
|
||||||
@ -68,7 +70,7 @@ def pictureCrawl(url):
|
|||||||
|
|
||||||
|
|
||||||
# 爬取按钮
|
# 爬取按钮
|
||||||
imgCrawling_button = tkinter.Button(root, text="开始爬取", command=lambda: pictureCrawl(entry.get()))
|
imgCrawling_button = tkinter.Button(root, text="开始爬取", command=lambda: pictureCrawl(entry.get()),activeforeground="red")
|
||||||
imgCrawling_button.place(x=520, y=30)
|
imgCrawling_button.place(x=520, y=30)
|
||||||
|
|
||||||
|
|
||||||
@ -83,7 +85,7 @@ def grayPic(e_entry):
|
|||||||
|
|
||||||
|
|
||||||
# 灰色图按钮
|
# 灰色图按钮
|
||||||
grayPic_button = tkinter.Button(root, text="灰色图", command=lambda: grayPic(e_entry))
|
grayPic_button = tkinter.Button(root, text="灰色图", command=lambda: grayPic(e_entry),activeforeground="red")
|
||||||
grayPic_button.place(x=110, y=75)
|
grayPic_button.place(x=110, y=75)
|
||||||
|
|
||||||
|
|
||||||
@ -100,17 +102,15 @@ def mirrorSymmetry(e_entry):
|
|||||||
|
|
||||||
|
|
||||||
# 镜面按钮
|
# 镜面按钮
|
||||||
mirrorSymmetry_button = tkinter.Button(root, text="镜面对称", command=lambda: mirrorSymmetry(e_entry))
|
mirrorSymmetry_button = tkinter.Button(root, text="镜面对称", command=lambda: mirrorSymmetry(e_entry),activeforeground="red")
|
||||||
mirrorSymmetry_button.place(x=170, y=75)
|
mirrorSymmetry_button.place(x=170, y=75)
|
||||||
|
|
||||||
|
|
||||||
# 右旋转
|
# 右旋转
|
||||||
def verticalSummetry_right(e_tery):
|
def verticalSummetry_right(e_tery):
|
||||||
img = Image.open(e_entry.get())
|
img = Image.open(e_entry.get())
|
||||||
img = np.array(img)
|
|
||||||
img1 = img.swapaxes(1, 0)
|
img2 = img.transpose(Image.ROTATE_270)
|
||||||
img2 = img1[:, ::-1]
|
|
||||||
img2 = Image.fromarray(img2)
|
|
||||||
|
|
||||||
pic = ImageTk.PhotoImage(img2)
|
pic = ImageTk.PhotoImage(img2)
|
||||||
img = tkinter.Label(image=pic)
|
img = tkinter.Label(image=pic)
|
||||||
@ -119,19 +119,15 @@ def verticalSummetry_right(e_tery):
|
|||||||
|
|
||||||
|
|
||||||
# 右旋转按钮
|
# 右旋转按钮
|
||||||
verticalSummetry_right_button = tkinter.Button(root, text="右旋转", command=lambda: verticalSummetry_right(e_entry))
|
verticalSummetry_right_button = tkinter.Button(root, text="右旋转", command=lambda: verticalSummetry_right(e_entry),activeforeground="red")
|
||||||
verticalSummetry_right_button.place(x=240, y=75)
|
verticalSummetry_right_button.place(x=240, y=75)
|
||||||
|
|
||||||
|
|
||||||
# 左旋转
|
# 左旋转
|
||||||
def verticalSummetry_lift(e_entry):
|
def verticalSummetry_lift(e_entry):
|
||||||
img = Image.open(e_entry.get())
|
img = Image.open(e_entry.get())
|
||||||
img = np.array(img)
|
|
||||||
img1 = img.transpose(1, 0, 2) # x,y轴转置
|
|
||||||
img2 = img1[::-1]
|
|
||||||
|
|
||||||
img2 = Image.fromarray(img2)
|
|
||||||
|
|
||||||
|
img2 = img.transpose(Image.ROTATE_90)
|
||||||
pic = ImageTk.PhotoImage(img2)
|
pic = ImageTk.PhotoImage(img2)
|
||||||
img = tkinter.Label(image=pic)
|
img = tkinter.Label(image=pic)
|
||||||
img.image = pic
|
img.image = pic
|
||||||
@ -139,7 +135,7 @@ def verticalSummetry_lift(e_entry):
|
|||||||
|
|
||||||
|
|
||||||
# 左旋转按钮
|
# 左旋转按钮
|
||||||
verticalSummetry_lift_button = tkinter.Button(root, text="左旋转", command=lambda: verticalSummetry_lift(e_entry))
|
verticalSummetry_lift_button = tkinter.Button(root, text="左旋转", command=lambda: verticalSummetry_lift(e_entry),activeforeground="red")
|
||||||
verticalSummetry_lift_button.place(x=300, y=75)
|
verticalSummetry_lift_button.place(x=300, y=75)
|
||||||
|
|
||||||
|
|
||||||
@ -155,7 +151,7 @@ def pixInversion(e_entry):
|
|||||||
|
|
||||||
|
|
||||||
# 像素反转
|
# 像素反转
|
||||||
pixInversion_button = tkinter.Button(root, text="像素反转", command=lambda: pixInversion(e_entry))
|
pixInversion_button = tkinter.Button(root, text="像素反转", command=lambda: pixInversion(e_entry),activeforeground="red")
|
||||||
pixInversion_button.place(x=360, y=75)
|
pixInversion_button.place(x=360, y=75)
|
||||||
|
|
||||||
|
|
||||||
@ -171,7 +167,7 @@ def redImage(e_entry):
|
|||||||
|
|
||||||
|
|
||||||
# 红色图按钮
|
# 红色图按钮
|
||||||
red_button = tkinter.Button(root, text="红色图", command=lambda: redImage(e_entry))
|
red_button = tkinter.Button(root, text="红色图", command=lambda: redImage(e_entry),activeforeground="red")
|
||||||
red_button.place(x=430, y=75)
|
red_button.place(x=430, y=75)
|
||||||
|
|
||||||
|
|
||||||
@ -187,10 +183,11 @@ def blueImage(e_entry):
|
|||||||
|
|
||||||
|
|
||||||
# 蓝色图按钮
|
# 蓝色图按钮
|
||||||
blue_button = tkinter.Button(root, text="蓝色图", command=lambda: blueImage(e_entry))
|
blue_button = tkinter.Button(root, text="蓝色图", command=lambda: blueImage(e_entry),activeforeground="red")
|
||||||
blue_button.place(x=490, y=75)
|
blue_button.place(x=490, y=75)
|
||||||
|
|
||||||
#绿色图函数
|
|
||||||
|
# 绿色图函数
|
||||||
def greenImage(e_entry):
|
def greenImage(e_entry):
|
||||||
img = Image.open(e_entry.get())
|
img = Image.open(e_entry.get())
|
||||||
img = np.array(img)
|
img = np.array(img)
|
||||||
@ -203,7 +200,7 @@ def greenImage(e_entry):
|
|||||||
|
|
||||||
|
|
||||||
# 绿色按钮
|
# 绿色按钮
|
||||||
green_button = tkinter.Button(root, text='绿色图', command=lambda: greenImage(e_entry))
|
green_button = tkinter.Button(root, text='绿色图', command=lambda: greenImage(e_entry),activeforeground="red")
|
||||||
green_button.place(x=550, y=75)
|
green_button.place(x=550, y=75)
|
||||||
|
|
||||||
|
|
||||||
@ -221,14 +218,14 @@ def imageMix(e_entry):
|
|||||||
|
|
||||||
|
|
||||||
# 图像混合按钮
|
# 图像混合按钮
|
||||||
imageMix_button = tkinter.Button(root, text="图像混合", command=lambda: imageMix(e_entry))
|
imageMix_button = tkinter.Button(root, text="图像混合", command=lambda: imageMix(e_entry),activeforeground="red")
|
||||||
imageMix_button.place(x=40, y=105)
|
imageMix_button.place(x=40, y=105)
|
||||||
|
|
||||||
|
|
||||||
# 图像剪切函数
|
# 图像剪切函数
|
||||||
def imageCut(e_entry):
|
def imageCut(e_entry,Entrybutton): # 一个Entrybutton代表四个值(20, 10, 190, 190)
|
||||||
img1 = Image.open(e_entry.get())
|
img1 = Image.open(e_entry.get())
|
||||||
part = (20, 10, 190, 190)
|
part = (eval(Entrybutton.get()))
|
||||||
img2 = img1.crop(part)
|
img2 = img1.crop(part)
|
||||||
img3 = ImageTk.PhotoImage(img2)
|
img3 = ImageTk.PhotoImage(img2)
|
||||||
img = tkinter.Label(image=img3)
|
img = tkinter.Label(image=img3)
|
||||||
@ -237,13 +234,13 @@ def imageCut(e_entry):
|
|||||||
|
|
||||||
|
|
||||||
# 剪切按钮
|
# 剪切按钮
|
||||||
cut_button = tkinter.Button(root, text="剪 切", command=lambda: imageCut(e_entry))
|
cut_button = tkinter.Button(root, text="剪 切", command=lambda: imageCut(e_entry,Entrybutton),activeforeground="red")
|
||||||
cut_button.place(x=110, y=105)
|
cut_button.place(x=110, y=105)
|
||||||
|
|
||||||
|
|
||||||
# 部分替换函数
|
# 部分替换函数
|
||||||
def imgReplace(e_entry):
|
def imgReplace(e_entry,Entrybutton): # Entrybutton 代表4个值(10, 50, 250, 250)
|
||||||
part = (10, 50, 250, 250)
|
part = (eval(Entrybutton.get()))
|
||||||
img1 = Image.open(e_entry.get())
|
img1 = Image.open(e_entry.get())
|
||||||
img2 = Image.open("./data/picture.png")
|
img2 = Image.open("./data/picture.png")
|
||||||
img3 = img2.crop(part)
|
img3 = img2.crop(part)
|
||||||
@ -256,23 +253,24 @@ def imgReplace(e_entry):
|
|||||||
|
|
||||||
|
|
||||||
# 部分替换按钮
|
# 部分替换按钮
|
||||||
imgReplace_button = tkinter.Button(root, text="部分替换", command=lambda: imgReplace(e_entry))
|
imgReplace_button = tkinter.Button(root, text="部分替换", command=lambda: imgReplace(e_entry,Entrybutton),activeforeground="red")
|
||||||
imgReplace_button.place(x=170, y=105)
|
imgReplace_button.place(x=170, y=105)
|
||||||
|
|
||||||
# 输入框
|
# 输入框
|
||||||
Entrybutton = tkinter.Entry(root, width=15)
|
Entrybutton = tkinter.Entry(root, width=15)
|
||||||
Entrybutton.insert(0, 2)
|
Entrybutton.insert(0, 0.5)
|
||||||
Entrybutton.place(x=490, y=110)
|
Entrybutton.place(x=490, y=110)
|
||||||
|
|
||||||
lab5 = tkinter.Label(root, text="Gamma:")
|
lab5 = tkinter.Label(root, text="Gamma:")
|
||||||
lab5.place(x=430, y=110)
|
lab5.place(x=430, y=110)
|
||||||
|
|
||||||
|
lab6=tkinter.Label(root,text=":<-other")
|
||||||
|
lab6.place(x=585,y=110)
|
||||||
# 伽马矫正函数(默认1/1,5)
|
# 伽马矫正函数(默认1/1,5)
|
||||||
def gammaCorrect(e_entry, Entrybutton):
|
def gammaCorrect(e_entry, Entrybutton):
|
||||||
img = Image.open(e_entry.get())
|
img = Image.open(e_entry.get())
|
||||||
img = np.array(img)
|
img = np.array(img)
|
||||||
img1 = np.power(img / float(np.max(img)), int(Entrybutton.get()))
|
img1 = np.power(img / float(np.max(img)), float(Entrybutton.get()))
|
||||||
img2 = Image.fromarray(np.uint8(img1 * 255))
|
img2 = Image.fromarray(np.uint8(img1 * 255))
|
||||||
img3 = ImageTk.PhotoImage(img2)
|
img3 = ImageTk.PhotoImage(img2)
|
||||||
img = tkinter.Label(image=img3)
|
img = tkinter.Label(image=img3)
|
||||||
@ -281,7 +279,7 @@ def gammaCorrect(e_entry, Entrybutton):
|
|||||||
|
|
||||||
|
|
||||||
# 伽马矫正按钮
|
# 伽马矫正按钮
|
||||||
gammaCorrect_button = tkinter.Button(root, text="伽马矫正", command=lambda: gammaCorrect(e_entry, Entrybutton))
|
gammaCorrect_button = tkinter.Button(root, text="伽马矫正", command=lambda: gammaCorrect(e_entry, Entrybutton),activeforeground="red")
|
||||||
gammaCorrect_button.place(x=240, y=105)
|
gammaCorrect_button.place(x=240, y=105)
|
||||||
|
|
||||||
|
|
||||||
@ -308,7 +306,7 @@ def decrease_color(e_entry):
|
|||||||
|
|
||||||
|
|
||||||
# 减色按钮
|
# 减色按钮
|
||||||
decrease_color_button = tkinter.Button(root, text="减色", command=lambda: decrease_color(e_entry))
|
decrease_color_button = tkinter.Button(root, text="减色", command=lambda: decrease_color(e_entry),activeforeground="red")
|
||||||
decrease_color_button.place(x=310, y=105)
|
decrease_color_button.place(x=310, y=105)
|
||||||
|
|
||||||
|
|
||||||
@ -338,7 +336,7 @@ def showImage(e_entry):
|
|||||||
|
|
||||||
|
|
||||||
# 采样按钮
|
# 采样按钮
|
||||||
picSampl_button = tkinter.Button(root, text='图片采样', command=lambda: showImage(e_entry))
|
picSampl_button = tkinter.Button(root, text='图片采样', command=lambda: showImage(e_entry),activeforeground="red")
|
||||||
picSampl_button.place(x=360, y=105)
|
picSampl_button.place(x=360, y=105)
|
||||||
|
|
||||||
|
|
||||||
@ -352,8 +350,9 @@ def showImg(e_entry):
|
|||||||
img.place(x=50, y=150)
|
img.place(x=50, y=150)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# 图片展示按钮
|
# 图片展示按钮
|
||||||
submit_button = tkinter.Button(root, text="显示原图", command=lambda: showImg(e_entry))
|
submit_button = tkinter.Button(root, text="显示原图", command=lambda: showImg(e_entry),activeforeground="red")
|
||||||
submit_button.place(x=40, y=75)
|
submit_button.place(x=40, y=75)
|
||||||
|
|
||||||
lable3 = tkinter.Label(root, text='原图', bg='red')
|
lable3 = tkinter.Label(root, text='原图', bg='red')
|
||||||
|
@ -28,7 +28,7 @@ def imgCut(path, left, upper, right, lower):
|
|||||||
# print(img.size) Picture Size
|
# print(img.size) Picture Size
|
||||||
part = (left, upper, right, lower) # 设置剪切的大小
|
part = (left, upper, right, lower) # 设置剪切的大小
|
||||||
|
|
||||||
# 剪切函数的调用
|
# 函数的调用
|
||||||
cut_img = img.crop(part)
|
cut_img = img.crop(part)
|
||||||
|
|
||||||
# 展示图片
|
# 展示图片
|
||||||
|
@ -16,7 +16,7 @@ alpha:透明度 ,取值范围为 0 到 1,当取值为 0 时,输出图像
|
|||||||
则是 image2 的拷贝,只有当取值为 0.5 时,才为两个图像的中合。因此改值的大小决定了两个图像的混合程度'''
|
则是 image2 的拷贝,只有当取值为 0.5 时,才为两个图像的中合。因此改值的大小决定了两个图像的混合程度'''
|
||||||
|
|
||||||
|
|
||||||
# 阿尔法图像混合
|
# 图像混合
|
||||||
def imageMix(imagePath1, imagePath2):
|
def imageMix(imagePath1, imagePath2):
|
||||||
'''
|
'''
|
||||||
|
|
||||||
|
@ -51,8 +51,11 @@ class modfifyImage():
|
|||||||
x, y = plt.subplots(2, 2)
|
x, y = plt.subplots(2, 2)
|
||||||
x.set_size_inches(10, 10)
|
x.set_size_inches(10, 10)
|
||||||
y[0, 0].imshow(self.imageMatrix())
|
y[0, 0].imshow(self.imageMatrix())
|
||||||
|
|
||||||
y[0, 1].imshow(red)
|
y[0, 1].imshow(red)
|
||||||
|
|
||||||
y[1, 0].imshow(green)
|
y[1, 0].imshow(green)
|
||||||
|
|
||||||
y[1, 1].imshow(blue)
|
y[1, 1].imshow(blue)
|
||||||
# 图片保存
|
# 图片保存
|
||||||
Image.fromarray(np.uint8(red)).save(root + 'picture1' + '.jpg')
|
Image.fromarray(np.uint8(red)).save(root + 'picture1' + '.jpg')
|
||||||
|
@ -42,26 +42,25 @@ class directionChanges():
|
|||||||
|
|
||||||
# 图像水平镜面对称
|
# 图像水平镜面对称
|
||||||
def mirrorSymmetry(self):
|
def mirrorSymmetry(self):
|
||||||
plt6 = self.imageMatrix()[::-1]
|
# plt6 = self.imageMatrix()[::-1]
|
||||||
|
plt6=self.imageRead().transpose(Image.ROTATE_180)
|
||||||
plt.imshow(plt6)
|
plt.imshow(plt6)
|
||||||
plt.show()
|
plt.show()
|
||||||
return plt6
|
return plt6
|
||||||
|
|
||||||
# 垂直对称(右旋转)
|
# 垂直对称(右旋转)
|
||||||
def verticalSummetry_right(self):
|
def verticalSummetry_right(self):
|
||||||
plt5 = self.imageMatrix().swapaxes(1, 0)
|
|
||||||
plt.imshow(plt5[:, ::-1])
|
plt5=self.imageRead().transpose(Image.ROTATE_270)
|
||||||
|
|
||||||
|
plt.imshow(plt5)
|
||||||
plt.show()
|
plt.show()
|
||||||
return plt5
|
return plt5
|
||||||
|
|
||||||
# 垂直镜面(左旋转)
|
# 垂直镜面(左旋转)
|
||||||
# transpose函数的作用就是调换数组的行列值的索引值,类似于求矩阵的转置
|
|
||||||
def verticalSummetry_lift(self):
|
def verticalSummetry_lift(self):
|
||||||
plt7 = self.imageMatrix().transpose(1, 0, 2) # x,y轴转置
|
plt7 = self.imageRead().transpose(Image.ROTATE_90)
|
||||||
plt.imshow(plt7[::-1])
|
plt.imshow(plt7)
|
||||||
plt.show()
|
plt.show()
|
||||||
return plt7
|
return plt7
|
||||||
|
|
||||||
# 保存图片
|
# 保存图片
|
||||||
def img_Save(self):
|
def img_Save(self):
|
||||||
root = "E:\\桌面\\Python_Picture_Analysis\\data\\" # 图片保存地址
|
root = "E:\\桌面\\Python_Picture_Analysis\\data\\" # 图片保存地址
|
||||||
|
@ -1,36 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
# @Time : 2022-7-24 0024 11:18
|
|
||||||
# @Author : Qing
|
|
||||||
# @Email : derighoid@gmail.com
|
|
||||||
# @File : Picture _Crawling.py
|
|
||||||
# @Software: PyCharm
|
|
||||||
|
|
||||||
# 导入库
|
|
||||||
import os
|
|
||||||
import requests
|
|
||||||
|
|
||||||
|
|
||||||
# path = '(?<=<img(?:.*)\s+src=")[^"]+(\.png|jpg|jpeg)'
|
|
||||||
# 定义函数
|
|
||||||
def pictureCrawl(url):
|
|
||||||
# 文件保存地址
|
|
||||||
root = "E://桌面//Python_Picture_Analysis//data//"
|
|
||||||
# 文件的保存地址以及格式
|
|
||||||
path = root + url.split('/')[-3] + '.png'
|
|
||||||
try:
|
|
||||||
if not os.path.exists(root): # 判断是否存在文件夹
|
|
||||||
os.mkdir(root)
|
|
||||||
if not os.path.exists(path): # 判断是否存在该文件
|
|
||||||
r = requests.get(url)
|
|
||||||
# 文件写入
|
|
||||||
with open(path, 'wb') as fp:
|
|
||||||
fp.write(r.content)
|
|
||||||
print("OK")
|
|
||||||
else:
|
|
||||||
print("File already exists")
|
|
||||||
except:
|
|
||||||
print("Crawl successful")
|
|
||||||
|
|
||||||
|
|
||||||
# url = "https://tse2-mm.cn.bing.net/th/id/OIP-C.fT7uKiT7V7YO2PPINFeOdQHaJ4?w=186&h=248&c=7&r=0&o=5&dpr=1.25&pid=1.7"
|
|
||||||
# pictureCrawl(url)
|
|
@ -7,17 +7,13 @@
|
|||||||
|
|
||||||
# 导入库
|
# 导入库
|
||||||
import os.path
|
import os.path
|
||||||
|
|
||||||
import matplotlib.pyplot as plt
|
import matplotlib.pyplot as plt
|
||||||
import numpy as np
|
import numpy as np
|
||||||
from PIL import Image
|
from PIL import Image
|
||||||
|
|
||||||
|
|
||||||
# 建立图片读取类
|
# 建立图片读取类
|
||||||
class pictureRead(object):
|
class pictureRead(object):
|
||||||
def __init__(self, filePath):
|
def __init__(self, filePath):
|
||||||
self.filePath = filePath
|
self.filePath = filePath
|
||||||
|
|
||||||
# 图片读取
|
# 图片读取
|
||||||
def fileRead(self):
|
def fileRead(self):
|
||||||
if self.filePath == " ":
|
if self.filePath == " ":
|
||||||
@ -25,8 +21,7 @@ class pictureRead(object):
|
|||||||
else:
|
else:
|
||||||
face = Image.open(self.filePath)
|
face = Image.open(self.filePath)
|
||||||
return face
|
return face
|
||||||
|
# 图片数字化
|
||||||
# 图片转矩阵
|
|
||||||
def imageMatrix(self):
|
def imageMatrix(self):
|
||||||
im = np.array(self.fileRead())
|
im = np.array(self.fileRead())
|
||||||
return im
|
return im
|
||||||
@ -53,9 +48,11 @@ class pictureRead(object):
|
|||||||
plt.subplot(121)
|
plt.subplot(121)
|
||||||
# 原图片显示
|
# 原图片显示
|
||||||
plt.imshow(self.imageMatrix())
|
plt.imshow(self.imageMatrix())
|
||||||
|
plt.title("Original")
|
||||||
plt.subplot(122)
|
plt.subplot(122)
|
||||||
# 灰色图片显示
|
# 灰色图片显示
|
||||||
plt.imshow(self.imageGrey())
|
plt.imshow(self.imageGrey())
|
||||||
|
plt.title('Gray')
|
||||||
plt.show()
|
plt.show()
|
||||||
|
|
||||||
# 图片保存
|
# 图片保存
|
||||||
|
@ -88,21 +88,21 @@ class ReduceColor(pictureRead):
|
|||||||
|
|
||||||
#定义画布
|
#定义画布
|
||||||
plt.figure(figsize=(16,8))
|
plt.figure(figsize=(16,8))
|
||||||
plt.subplot(141)
|
plt.subplot(131)
|
||||||
plt.imshow(img)
|
plt.imshow(img)
|
||||||
plt.title("origin")
|
plt.title("origin")
|
||||||
|
|
||||||
plt.subplot(142)
|
plt.subplot(132)
|
||||||
plt.imshow(newImg)
|
plt.imshow(newImg)
|
||||||
plt.title("1")
|
plt.title("1")
|
||||||
|
|
||||||
plt.subplot(143)
|
plt.subplot(133)
|
||||||
plt.imshow(newImg2)
|
plt.imshow(newImg2)
|
||||||
plt.title("2")
|
plt.title("2")
|
||||||
|
|
||||||
plt.subplot(144)
|
# plt.subplot(144)
|
||||||
plt.imshow(newImg3)
|
# plt.imshow(newImg3)
|
||||||
plt.title("3")
|
# plt.title("3")
|
||||||
plt.show()
|
plt.show()
|
||||||
return newImg,newImg2,newImg3
|
return newImg,newImg2,newImg3
|
||||||
|
|
||||||
|
50
main.py
50
main.py
@ -17,43 +17,45 @@ if __name__ == '__main__':
|
|||||||
# 图片读取
|
# 图片读取
|
||||||
picture_read = pictureRead('E:\\桌面\\Python_Picture_Analysis\\data\\th.png')
|
picture_read = pictureRead('E:\\桌面\\Python_Picture_Analysis\\data\\th.png')
|
||||||
#图片展示
|
#图片展示
|
||||||
picture_read.plt_image()
|
# picture_read.plt_image()
|
||||||
|
|
||||||
|
|
||||||
# 图片修改
|
# 图片修改
|
||||||
modif_image = modfifyImage('E:\\桌面\\Python_Picture_Analysis\\data\\th.png')
|
modif_image = modfifyImage('E:\\桌面\\Python_Picture_Analysis\\data\\th.png')
|
||||||
# print(modif_image.img_RGB())
|
# modif_image.img_RGB()
|
||||||
|
# modif_image.pixInversion()
|
||||||
|
|
||||||
# 图片方向修改
|
# 图片方向修改
|
||||||
direction_Changes = directionChanges('E:\\桌面\\Python_Picture_Analysis\\data\\th.png')
|
direction_Changes = directionChanges('E:\\桌面\\Python_Picture_Analysis\\data\\th.png')
|
||||||
# direction_Changes.verticalSummetry_right()
|
# direction_Changes.verticalSummetry_right() # 右旋转
|
||||||
# direction_Changes.verticalSummetry_lift()
|
# direction_Changes.verticalSummetry_lift() # 左旋转
|
||||||
# direction_Changes.mirrorSymmetry()
|
# direction_Changes.mirrorSymmetry() # 镜像对称
|
||||||
# direction_Changes.imageRepetition()
|
# direction_Changes.imageRepetition() # 图像重复
|
||||||
# direction_Changes.img_Save()
|
# # direction_Changes.img_Save() # 图像保存
|
||||||
|
|
||||||
# 减色算法
|
# 减色算法
|
||||||
reduce_color = ReduceColor('E:\\桌面\\Python_Picture_Analysis\\data\\th.png')
|
reduce_color = ReduceColor('E:\\桌面\\Python_Picture_Analysis\\data\\th.png')
|
||||||
# reduce_color.decrease_color()
|
# reduce_color.decrease_color() # 减色算法
|
||||||
# reduce_color.img_Save()
|
# # reduce_color.img_Save()
|
||||||
# reduce_color.imgBinarization()
|
# reduce_color.imgBinarization() #图像二值化
|
||||||
|
|
||||||
|
|
||||||
# Gamma矫正
|
# Gamma矫正
|
||||||
# gammaCorrect("./data/th.png", 1.5)
|
# gammaCorrect("./data/th.png", 1.5)
|
||||||
|
#
|
||||||
# 图片截取
|
# # 图片截取
|
||||||
# left, upper, right, lower
|
# # left, upper, right, lower
|
||||||
imgCut('E:\\桌面\\Python_Picture_Analysis\\data\\th.png',20,10,190,190)
|
# imgCut('E:\\桌面\\Python_Picture_Analysis\\data\\th.png',20,10,190,190)
|
||||||
imgCut('E:\\桌面\\Python_Picture_Analysis\\data\\picture.png',30,70,230,230)
|
# # imgCut('E:\\桌面\\Python_Picture_Analysis\\data\\picture.png',30,70,230,230)
|
||||||
|
#
|
||||||
# 图片替换
|
# # 图片替换
|
||||||
imgReplace('E:\\桌面\\Python_Picture_Analysis\\data\\th.png', "E:\\桌面\\Python_Picture_Analysis\\data\\picture.png",
|
# imgReplace('E:\\桌面\\Python_Picture_Analysis\\data\\th.png', "E:\\桌面\\Python_Picture_Analysis\\data\\picture.png",
|
||||||
10, 50, 250, 250)
|
# 10, 50, 250, 250)
|
||||||
|
#
|
||||||
# 阿尔法混合
|
# # 阿尔法混合
|
||||||
imageMix('E:\\桌面\\Python_Picture_Analysis\\data\\th.png','E:\\桌面\\Python_Picture_Analysis\\data\\picture.png')
|
# imageMix('E:\\桌面\\Python_Picture_Analysis\\data\\th.png','E:\\桌面\\Python_Picture_Analysis\\data\\picture.png')
|
||||||
|
#
|
||||||
#蓝噪
|
# #采样
|
||||||
showImage("./data/th.png")
|
showImage("./data/th.png")
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user