您现在的位置是:主页 > news > 做网站品/万能的搜索引擎

做网站品/万能的搜索引擎

admin2025/6/15 11:04:25news

简介做网站品,万能的搜索引擎,iapp怎么做软件,如何查看网站的css对图片数据增强,可以对图片实现: 1. 尺寸放大缩小 2. 旋转(任意角度,如45,90,180,270) 3. 翻转(水平翻转,垂直翻转) 4. 明亮度改变(变…

做网站品,万能的搜索引擎,iapp怎么做软件,如何查看网站的css对图片数据增强,可以对图片实现: 1. 尺寸放大缩小 2. 旋转(任意角度,如45,90,180,270) 3. 翻转(水平翻转,垂直翻转) 4. 明亮度改变(变…

对图片数据增强,可以对图片实现:

1. 尺寸放大缩小

2. 旋转(任意角度,如45°,90°,180°,270°)

3. 翻转(水平翻转,垂直翻转)

4. 明亮度改变(变亮,变暗)

5. 像素平移(往一个方向平移像素,空出部分自动填补黑色)

6. 添加噪声(椒盐噪声,高斯噪声)

目录

一、放大缩小

二、水平/垂直翻转

三、旋转

四、明亮度

五、平移

六、添加噪声


一、放大缩小

import os
import numpy as np
import cv2# 放大缩小
def Scale(image, scale):return cv2.resize(image,None,fx=scale,fy=scale,interpolation=cv2.INTER_LINEAR)def TestOnePic():test_jpg_loc = r"data4/daisy/1.jpg"test_jpg = cv2.imread(test_jpg_loc)cv2.imshow("ShowImg", test_jpg)img1 = Scale(test_jpg,0.5)cv2.imshow("Img1", img1)img2 = Scale(test_jpg,2)cv2.imshow("Img2", img2)cv2.waitKey(0)cv2.destroyAllWindows()if __name__ == "__main__":TestOnePic()

 

二、水平/垂直翻转

import os
import numpy as np
import cv2# flipcode=1为水平翻转,flipcode=0为垂直翻转
def Horizontal(image):return cv2.flip(image,1,dst=None)def Vertical(image):return cv2.flip(image,0,dst=None)def TestOnePic():test_jpg_loc = r"data4/daisy/1.jpg"test_jpg = cv2.imread(test_jpg_loc)cv2.imshow("ShowImg", test_jpg)img1 = Horizontal(test_jpg)cv2.imshow("Img1", img1)img2 = Vertical(test_jpg)cv2.imshow("Img2", img2)cv2.waitKey(0)cv2.destroyAllWindows()if __name__ == "__main__":TestOnePic()

 

三、旋转

image.shape[0], 图片垂直尺寸

image.shape[1], 图片水平尺寸

image.shape[2], 图片通道数

cv2.getRotationMatrix2D()经常被使用到的参数有三个:

  • 旋转中心
  • 旋转角度
  • 旋转后的缩放比例

利用opencv实现仿射变换一般会涉及到warpAffine和getRotationMatrix2D两个函数,其中warpAffine可以实现一些简单的重映射,而getRotationMatrix2D可以获得旋转矩阵。cv2.warpAffine()主要有以下参数:

  • src: 输入图像
  • dst: 输出图像,尺寸由dsize指定,图像类型与原图像一致
  • M: 2X3的变换矩阵
  • dsize: 指定图像输出尺寸
  • flags: 插值算法标识符,有默认值INTER_LINEAR,如果插值算法WARP_INVERSE_MAP, warpAffine函数使用如下矩阵进行图像转换
import os
import numpy as np
import cv2#旋转
def Rotate(image,angle,scale):w = image.shape[1]h = image.shape[0]# 第一个参数旋转中心,第二个参数旋转角度,第三个参数:缩放比例M = cv2.getRotationMatrix2D((w/2,h/2),angle,scale)# 得到矩阵后得用到图像的仿射变换函数才可以进行最终图像的变化image = cv2.warpAffine(image,M,(w,h))return imagedef TestOnePic():test_jpg_loc = r"data4/daisy/1.jpg"test_jpg = cv2.imread(test_jpg_loc)cv2.imshow("ShowImg", test_jpg)img1 = Rotate(test_jpg,45,2)cv2.imshow("Img1", img1)img2 = Rotate(test_jpg,90,1)cv2.imshow("Img2", img2)cv2.waitKey(0)cv2.destroyAllWindows()if __name__ == "__main__":TestOnePic()

旋转后如果图片大小不够大的话会填充黑色。

 

四、明亮度

把图片变亮或者变暗。

import os
import numpy as np
import cv2'''  
明亮度 
'''
# 变暗
def Darker(image,percetage):image_copy = image.copy()w = image.shape[1]h = image.shape[0]#get darkerfor xi in range(0,w):for xj in range(0,h):image_copy[xj,xi,0] = int(image[xj,xi,0]*percetage)image_copy[xj,xi,1] = int(image[xj,xi,1]*percetage)image_copy[xj,xi,2] = int(image[xj,xi,2]*percetage)return image_copy# 明亮
def Brighter(image, percetage):image_copy = image.copy()w = image.shape[1]h = image.shape[0]#get brighterfor xi in range(0,w):for xj in range(0,h):image_copy[xj,xi,0] = np.clip(int(image[xj,xi,0]*percetage),a_max=255,a_min=0)image_copy[xj,xi,1] = np.clip(int(image[xj,xi,1]*percetage),a_max=255,a_min=0)image_copy[xj,xi,2] = np.clip(int(image[xj,xi,2]*percetage),a_max=255,a_min=0)return image_copydef TestOnePic():test_jpg_loc = r"data4/daisy/1.jpg"test_jpg = cv2.imread(test_jpg_loc)cv2.imshow("ShowImg", test_jpg)img1 = Darker(test_jpg,0.9)cv2.imshow("Img1", img1)img2 = Brighter(test_jpg,1.1)cv2.imshow("Img2", img2)cv2.waitKey(0)cv2.destroyAllWindows()if __name__ == "__main__":TestOnePic()

五、平移

import os
import numpy as np
import cv2def Move(img,x,y):img_info=img.shapeheight=img_info[0]width=img_info[1]mat_translation=np.float32([[1,0,x],[0,1,y]])  #变换矩阵:设置平移变换所需的计算矩阵:2行3列#[[1,0,20],[0,1,50]]   表示平移变换:其中x表示水平方向上的平移距离,y表示竖直方向上的平移距离。dst=cv2.warpAffine(img,mat_translation,(width,height))  #变换函数return dstdef TestOnePic():test_jpg_loc = r"data4/daisy/1.jpg"test_jpg = cv2.imread(test_jpg_loc)cv2.imshow("ShowImg", test_jpg)img1 = Move(test_jpg,10,20)cv2.imshow("Img1", img1)img2 = Move(test_jpg,-20,-10)cv2.imshow("Img2", img2)cv2.waitKey(0)cv2.destroyAllWindows()if __name__ == "__main__":TestOnePic()

六、添加噪声

import os
import numpy as np
import cv2'''
增加噪声
'''
# 椒盐噪声
def SaltAndPepper(src,percetage):SP_NoiseImg=src.copy()SP_NoiseNum=int(percetage*src.shape[0]*src.shape[1])for i in range(SP_NoiseNum):randR=np.random.randint(0,src.shape[0]-1)randG=np.random.randint(0,src.shape[1]-1)randB=np.random.randint(0,3)if np.random.randint(0,1)==0:SP_NoiseImg[randR,randG,randB]=0else:SP_NoiseImg[randR,randG,randB]=255return SP_NoiseImg# 高斯噪声
def GaussianNoise(image,percetage):G_Noiseimg = image.copy()w = image.shape[1]h = image.shape[0]G_NoiseNum=int(percetage*image.shape[0]*image.shape[1])for i in range(G_NoiseNum):temp_x = np.random.randint(0,h)temp_y = np.random.randint(0,w)G_Noiseimg[temp_x][temp_y][np.random.randint(3)] = np.random.randn(1)[0]return G_Noiseimgdef TestOnePic():test_jpg_loc = r"data4/daisy/1.jpg"test_jpg = cv2.imread(test_jpg_loc)cv2.imshow("ShowImg", test_jpg)img1 = SaltAndPepper(test_jpg,0.05)cv2.imshow("Img1", img1)img2 = GaussianNoise(test_jpg,0.05)cv2.imshow("Img2", img2)cv2.waitKey(0)cv2.destroyAllWindows()if __name__ == "__main__":TestOnePic()