opencv+python+数字图像处理入门6/1

对图像生成高斯噪声

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_返回长度

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值