对图像生成高斯噪声
import cv2
import numpy as np
import matplotlib.pyplot as plt
def gasuss(image,mean=0,var=0.001):
'''
:param image:图像
:param mean: 均值
:param var: 方差,越大噪声越大
:return:
'''
image=image
image=np.array(image/255,dtype=float) #图像归一化,即将像素变换到某一个范围之间,这里是0-1
noise=np.random.normal(mean,var**0.5,image.shape) #创建一个与原图长宽相等的矩阵,均值为mean,方差为var
out=image+noise #相加后就得到了加噪声后的图像
if out.min()<0: #元素不符合的变成-1或0
low_clip=-1
else:
low_clip=0
out=np.clip(out,low_clip,1.0)
out=np.uint8(out*255) #解除归一化,恢复像素值
noise=noise*255
return [noise,out]
img=cv2.imread('D:/lena.jpg')
noise,out=gasuss(img,mean=0,var=0.003)
cv2.imshow('yuantu',img)
cv2.imshow('zaoshengtu',noise)
cv2.imshow('shuchu',out)
cv2.waitKey()
缩放图像
import cv2
img=cv2.imread('D:/lena.jpg')
x,y=img.shape[0:2] #长宽赋值
img1=cv2.resize(img,(int(x/3),int(y/3)))
'''
图像,输出的尺寸设为原图的三分之一,缩放
函数:输入图像;输出图像尺寸;沿xy轴的缩放系数;插入方式
'''
img2=cv2.resize(img,(int(x/4),int(y/4)),interpolation=cv2.INTER_NEAREST) #最临界插值法缩小
cv2.imshow('yuantu',img)
cv2.imshow('out',img1)
cv2.imshow('1/4',img2)
cv2.waitKey(0)
放大图像,只须将/换成*即可
坎尼边缘检测
import cv2
import numpy as np
img=cv2.imread('D:/lena.jpg',0)
cv2.imwrite('canny.jpg',cv2.Canny(img,200,300)) #保存图像到文件
cv2.imshow('canny',cv2.imread('canny.jpg'))
cv2.waitKey(0)
python+pytoch扫盲:
改写dataset项目:
_init_所有类都自带的构造函数,生成对象时调用,进行初始化设置,比如数据的路径
_del_析构函数,释放对象时调用
_getitem_(index)按照索引获取函数的方法,以及数据增强的方法,针对每一张图像,需要用index参数来接受dataloader传进来的值,表示欲获取数据的索引
_len_返回长度