图像金字塔:高斯金字塔与拉普拉斯金字塔
高斯金字塔(拿0填充,会损失精度)(用来向下采样,主要的图像金字塔) 向下采样方法(缩小,从底部往顶部走) 向上采样(放大,从顶到底部走) 缩小图像,一般推荐使用**CV_INETR_AREA(区域插值)**来插值; 放大图像,推荐使用CV_INTER_LINEAR(线性插值); 拉普拉斯金字塔(从金字塔低层图像重建上层未采样图像,在数字图像处理中也即是预测残差,可以对图像进行最大程度的还原,配合高斯金字塔一起使用): 第一层:原始图像-down-up; 第二层:第一层结果-down-up 图像金字塔—-高斯和拉普拉斯 代码1234567891011121314151617181920212223242526272829303132import cv2import numpy as npimg = cv2.imread("dm.png")print(img.shape)cv2.imshow('img',img)#向上采样(放大)up = cv2.pyrUp(img)print(up.s...
图片 resize 与 addWeighted 图像融合
resize:cv2.resize(img,(0,0),fx=3,fy=3) (0,0)表示不指定具体数值,后面是放大倍数addWeighted(图片大小要一样):cv2.addWeighted(img,0.5,img1,0.5,10)#gama是亮度集1234567891011121314151617181920212223242526import cv2import numpy as npfrom matplotlib import pyplot as pltimg = cv2.imread("a28.png")img1 = cv2.imread("draw.png")cv2.imshow("img",img)cv2.waitKey(0)cv2.destroyAllWindows()print(img.shape,img1.shape)# 如果shape不同img = cv2.resize(img,(400,600))img1 = cv2.resize(img1,(400,600))print(...
城市街景语义分割 UNET
import tensorflow as tf import numpy as np import os %matplotlib inline import matplotlib.pyplot as plt import glob 获取img、label路径12img = glob.glob('./images/leftImg8bit/train/*/*.png')#tf.io.glob.globlabel = glob.glob('./images/gtFine/train/*/*_gtFine_labelIds.png') 获取img_val、label_val路径12img_val = glob.glob('./images/leftImg8bit/val/*/*.png')label_val = glob.glob('./images/gtFine/val/*/*_gtFine_labelIds.png') 对训练路径进行乱序(减轻shuffle)123index = np.random...
基本去噪自编码器的实现
import tensorflow as tf import matplotlib.pyplot as plt import numpy as np 查看tensorflow版本1tf.__version__ 导入mnist数据集1(x_train,_),(x_test,_) = tf.keras.datasets.mnist.load_data() 查看数据维度1x_train.shape,x_test.shape 对数据进行reshape 28*28->78412x_train = x_train.reshape(x_train.shape[0], -1)x_test = x_test.reshape(x_test.shape[0], -1) 数据归一化12x_train = tf.cast(x_train,tf.float32)/255x_test = tf.cast(x_test,tf.float32)/255 噪声的添加123factor = 0.5 #增加噪声多少x_train_noise = x_train + factor*np.random.n...
基本自编码器
import tensorflow as tf import matplotlib.pyplot as plt 查看Tensorflow版本1tf.__version__ 加载数据集1(x_train,_),(x_test,_) = tf.keras.datasets.mnist.load_data() 扁平化12x_train = x_train.reshape(x_train.shape[0],-1)#-1 表示自动计算x_test = x_test.reshape(x_test.shape[0],-1) 123x_train.shape,x_test.shape((60000, 28, 28), (10000, 28, 28))((60000, 784), (10000, 784)) 归一化12x_train = tf.cast(x_train,tf.float32)/255x_test = tf.cast(x_test,tf.float32)/255 设置输入、输出、压缩大小123input_size = 784hidden_size = 32output_si...
多层感知器
import tensorflow as tfimport pandas as pd import numpy as np import matplotlib.pyplot as plt %matplotlib inline 读取csv数据1data = pd.read_csv('Advertising.csv') 12#打印数据data.head() #head打印前5行 Unnamed: 0 TV radio newspaper sales 0 1 230.1 37.8 69.2 22.1 1 2 44.5 39.3 45.1 10.4 2 3 17.2 45.9 69.3 9.3 3 4 151.5 41.3 58.5 18.5 4 5 180.8 10.8 58.4 12.9 散点图绘制1plt.scatter(data.TV,data.sales) 1plt.scatter(data.radio,data.sales) 1plt.scatter(data.newspaper,data.sales) ...
多输出模型实例
import tensorflow as tf from tensorflow import keras import matplotlib.pyplot as plt %matplotlib inline import numpy as np import pathlib 打印Tensorflow版本1print('Tensorflow version:{}'.format(tf.__version__)) 打印是否支持GPU加速1print(tf.test.is_gpu_available()) 图片文件根目录1data_dir = './dataset/moc' 1data_root = pathlib.Path(data_dir) 12data_rootWindowsPath('dataset/moc') 获取所有图片路径1all_image_paths = list(data_root.glob('*/*')) 12345678910all_image_pa...
常用控件1
按钮QPushButton 就是常见的按钮 官网介绍 信号:被点击当按钮被点击就会发出 clicked 信号,可以这样指定处理该信号的函数 1button.clicked.connect(handleCalc) 改变文本代码中可以使用 setText 方法来改变按钮文本,比如 1button.setText(text) 禁用、启用所有控件(继承自QWidget类)都支持 禁用和启用方法。 禁用后,该控件不再处理用户操作 禁用 1button.setEnabled(False) 启用 1button.setEnabled(True) 设置图标可以通过如下方法给按钮设置图标 12345678from PySide2.QtCore import Qt,QSizefrom PySide2.QtGui import QIcon# 设置图标button.setIcon(QIcon('logo.png'))# 设置图标大小button.setIconSize(QSize(30, 30)) 单行文本框QLineEdit 是只能单行编辑的文本框。 官网介绍...
常用控件2
组合选择框QComboBox 是组合选择框,如下图所示 官网介绍 信号:选项改变如果用户操作修改了QComboBox中的选项就会发出 currentIndexChanged 信号,可以这样指定处理该信号的函数 1cbox.currentIndexChanged.connect(handleSelectionChange) 添加一个选项代码中可以使用 addItem 方法来添加一个选项到 末尾 ,参数就是选项文本 1cbox.addItem('byhy') 添加多个选项代码中可以使用 addItems 方法来添加多个选项到 末尾,参数是包含了多个选项文本的列表 1cbox.addItems(['byhy','白月黑羽','python教程']) 清空选项代码中可以使用 clear 方法来清空选项,也就是删除选择框内所有的选项 1cbox.clear() 获取当前选项文本代码中可以使用 currentText 方法来获取当前 选中的选项 的文本,比如 1method = cbox.current...






