网站营销推广计划,优化设计七年级上册数学答案,怎么才能免费建网站,网络品牌塑造加上雨点噪声
import cv2
import numpy as npdef get_noise(img, value10):#生成噪声图像 输入#xff1a; img图像value 大小控制雨滴的多少 返回图像大小的模糊噪声图像noise np.random.uniform(0, 256, img.shape[0:2])# 控制噪声水平#xff…加上雨点噪声
import cv2
import numpy as npdef get_noise(img, value10):#生成噪声图像 输入 img图像value 大小控制雨滴的多少 返回图像大小的模糊噪声图像noise np.random.uniform(0, 256, img.shape[0:2])# 控制噪声水平取浮点数只保留最大的一部分作为噪声v value * 0.01noise[np.where(noise (256 - v))] 0# 噪声做初次模糊k np.array([[0, 0.1, 0],[0.1, 8, 0.1],[0, 0.1, 0]])noise cv2.filter2D(noise, -1, k)# 可以输出噪声看看cv2.imshow(img,noise)cv2.waitKey()cv2.destroyWindow(img)return noisedef rain_blur(noise, length10, angle0,w1):将噪声加上运动模糊,模仿雨滴输入noise输入噪声图shape img.shape[0:2]length: 对角矩阵大小表示雨滴的长度angle 倾斜的角度逆时针为正w: 雨滴大小输出带模糊的噪声#这里由于对角阵自带45度的倾斜逆时针为正所以加了-45度的误差保证开始为正trans cv2.getRotationMatrix2D((length/2, length/2), angle-45, 1-length/100.0) dig np.diag(np.ones(length)) #生成对焦矩阵k cv2.warpAffine(dig, trans, (length, length)) #生成模糊核k cv2.GaussianBlur(k,(w,w),0) #高斯模糊这个旋转后的对角核使得雨有宽度#k k / length #是否归一化blurred cv2.filter2D(noise, -1, k) #用刚刚得到的旋转后的核进行滤波#转换到0-255区间cv2.normalize(blurred, blurred, 0, 255, cv2.NORM_MINMAX)blurred np.array(blurred, dtypenp.uint8)return blurreddef alpha_rain(rain,img,beta 0.8):#输入雨滴噪声和图像#beta 0.8 #results weight#显示下雨效果#expand dimensin#将二维雨噪声扩张为三维单通道#并与图像合成在一起形成带有alpha通道的4通道图像rain np.expand_dims(rain,2)rain_effect np.concatenate((img,rain),axis2) #add alpha channelrain_result img.copy() #拷贝一个掩膜rain np.array(rain,dtypenp.float32) #数据类型变为浮点数后面要叠加防止数组越界要用32位rain_result[:,:,0] rain_result[:,:,0] * (255-rain[:,:,0])/255.0 beta*rain[:,:,0]rain_result[:,:,1] rain_result[:,:,1] * (255-rain[:,:,0])/255 beta*rain[:,:,0] rain_result[:,:,2] rain_result[:,:,2] * (255-rain[:,:,0])/255 beta*rain[:,:,0]#对每个通道先保留雨滴噪声图对应的黑色透明部分再叠加白色的雨滴噪声部分有比例因子cv2.imwrite(rain_result.png, np.uint8(rain_result))img cv2.imread(cv.png)
noise get_noise(img,value500)
rain rain_blur(noise,length50,angle-30,w3)
alpha_rain(rain,img,beta0.6)加上光斑噪声
利用一张光斑的图像加在原始图像上
import numpy as np
import cv2
from PIL import Imageimage1 cv2.imread(cub1.jpg)
image2 cv2.imread(ban.jpg)height image1.shape[0]
width image1.shape[1]
image2 cv2.resize(image2, (width, height), interpolation cv2.INTER_LINEAR)
image (image1 image2) // 2cv2.imwrite(cv.png, np.uint8(image))