Tkinter:创建一个小游戏并可视化结果

介绍图形用户界面(GUI)是为用户交互提供灵活性的界面。它的交互性使我着迷。应用程序越吸引人,游戏开发就越好。GUI的最常见组件是主窗口,按钮,文本输入,标签,菜单等。在Python中进行GUI开发的最常见选项是Tkinter,wxPython和JPython。我们将在本文中讨论Tkinter,创建一个小游戏并可视化结果。

Read More →

亚马逊门铃系统上的人脸识别是如何实现的?

作为一个新的亚马逊门铃的买家,我喜欢它提供的炫酷功能。然而,我认为我可以做一些改进。我需要的是为住在我家的人定制的门铃。要是门铃能认出是谁在敲门就好了。看到门铃是多么的受欢迎,我决定帮助大多数家庭,最好方法是让他们能够毫不费力地定制他们的门铃。我开发了一个应用程序,可以告诉你谁在你的门口,只需输入你的门铃帐户的用户名和密码。知道谁在你的门口,无需等待门铃在你的智能手机上显示视频,这是非常方便的。它大大提高了安全性,带来了极大的便利,甚至可以安装在一个自动开门的系统上。在深度学习时代,每个家庭都需要安装这些系统。下图说明了我的系统是如何工作的。

Read More →

如何设计可口可乐瓶的图像识别方法?

介绍可口可乐公司已经进行了瓶子的再利用,接受了其随之而来的所有环境影响和金钱利益。当客户购买玻璃瓶中的可乐饮料时,他们会在返回空瓶时获得奖励,而如果没有奖励则会这些玻璃瓶被扔掉和浪费,所以我们可以设计一种自动识别可口可乐瓶的图像识别方法。使用带有大“ Coca Cola”字样的标签可以轻松辨认可口可乐瓶,而且该字样通常为白色,我们可以通过隔离白色并在分割图像上训练模型来获得标签。依赖库import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm
from matplotlib import colors
import os
import cv2
import PIL
from tensorflow.keras.layers import Dense,Conv2D, Dropout,Flatten, MaxPooling2D
from tensorflow import keras
from tensorflow.keras.models import Sequential, save_model, load_model
from tensorflow.keras.optimizers import Adam
import tensorflow as tf
from tensorflow.keras.preprocessing.image import img_to_array
from tensorflow.keras.preprocessing.image import load_img
from tensorflow.keras.applications.inception_v3 import InceptionV3, preprocess_input
from tensorflow.keras.callbacks import ModelCheckpoint
from sklearn.decomposition import PCA
Numpy用于操纵数组数据。Matplotlib用于可视化图像,并显示在特定的颜色范围内颜色可辨性。OS用于访问文件结构。CV2用于读取图像并将其转换为不同的配色方案。Keras用于实际的神经网络。转换颜色方案确定适当的颜色方案:为了能够隔离颜色,我们需要检查颜色在不同配色方案中的可分辨性,可以为此使用3D图首先,我们可以在3D空间中以RGB颜色格式可视化图像。在这里,我们基本上将图像分为其成分(在这种情况下为红色,绿色和蓝色),然后设置3D图;接下来是对图像进行整形,然后对图像进行归一化,从而将范围从0-255减小到0-1;最后,使用scatter()函数创建散点图,然后我们相应地标记轴。red, green, blue = cv2.split(img)
fig = plt.figure()
axis = fig.add_subplot(1, 1, 1, projection="3d")
pixel_colors = img.reshape((np.shape(img)[0]*np.shape(img)[1], 3))
norm = colors.Normalize(vmin=-1.,vmax=1.)
norm.autoscale(pixel_colors)
pixel_colors = norm(pixel_colors).tolist()
axis.scatter(red.flatten(), green.flatten(), blue.flatten(), facecolors=pixel_colors, marker=".")
axis.set_xlabel("Red")
axis.set_ylabel("Green")
axis.set_zlabel("Blue")
plt.show()

Read More →

使用python+numpy+scipy进行图像处理实战

以前照相没有像现在这样那么容易的,而在现在你只需要一部手机,就可以免费拍照,而在上一代人之前,业余艺术家和真正的艺术家拍照的费用非常昂贵,并且每张照片的成本也不是免费的。
我们拍照是为了及时地保存美好的瞬间,被保存的记忆可以随时在未来被"打开"。这个过程就像腌制东西一样,所以我们要注意正确的防腐剂。虽然现在手机为我们提供了一系列的图像处理软件,但是如果我们需要处理大量的照片时,我们就需要其他的工具了,此时编程和Python就派上用场了。Python及其模块如Numpy、Scipy、Matplotlib和其他特殊模块提供了各种各样的函数,能够处理大量图片。为了向你介绍必要的知识,本文Python教程将教你如何进行基本的图像处理和操作,为此我们使用模块NumPy、Matplotlib和SciPy。我们从scipy包的misc工具开始。# 以下行仅在Python notebook中需要加上:
%matplotlib inline
from scipy import misc
ascent = misc.ascent()
import matplotlib.pyplot as plt
plt.gray()
plt.imshow(ascent)
plt.show()
除了显示图像之外,我们还可以看到带有刻度的轴。如果你需要一些关于大小和像素位置的方向时,这是很有用的,但在大多数情况下,你并不需要这些信息,则我们可以通过添加命令plt.axis("off")来去掉刻度和轴:from scipy import misc
ascent = misc.ascent()
import matplotlib.pyplot as plt
plt.axis("off") # 删除轴和刻度
plt.gray()
plt.imshow(ascent)
plt.show()
我们可以看到这个图像的类型是一个整数数组:ascent.dtype
输出:dtype('int64')我们也可以检查图像的大小:ascent.shape
输出:(512,512)misc包里还有一张浣熊的图片:import scipy.misc
face = scipy.misc.face()
print(face.shape)
print(face.max)
print(face.dtype)
plt.axis("off")
plt.gray()
plt.imshow(face)
plt.show()
(768, 1024, 3)

Read More →

使用Google云平台实战基于PyTorch的yolo-v3模型

对于 爱好者来说,YOLO (You Only Look Once)是一个非常流行的实时目标检测算法,因为它非常快,同时性能非常好。在本文中,我将共享一个视频处理的代码,以获取视频中每个对象目标的边框。我们将不讨论YOLO的概念或架构,因为很多好的文章已经在媒体中详细阐述了这些知识点。这里我们只讨论函数代码。

Read More →