大家一起学机器学习啦!
图片操作太多了,这里包括了
1.平铺图像
2.转置图像
3.灰度化
4.加噪点
import cv2
import numpy as np
fn = 'Img2.jpg'
img1 = cv2.imread(fn)
w = img1.shape[1]
h = img1.shape[0]
'''平铺图像'''
sz1 = w*2#横向平铺5个图像
sz0 = h*2#纵向平铺两个图像
myImg1 = np.zeros((sz0, sz1, 3), np.uint8)#创建空白图像
img_x = 0
img_y = 0
for now_y in range(0, sz0):#逐个像素点复制
for now_x in range(0, sz1):
myImg1[now_y, now_x, 0] = img1[img_y, img_x, 0]
myImg1[now_y, now_x, 1] = img1[img_y, img_x, 1]
myImg1[now_y, now_x, 2] = img1[img_y, img_x, 2]
img_x += 1
if img_x >= w:
img_x = 0
img_y += 1
if img_y >= h:
img_y = 0
'''转置图像'''
img_x = 0
img_y = 0
myImg2 = np.zeros((w, h, 3), np.uint8)#创建空白图像
for now_y in range(0, h):
for now_x in range(0, w):
myImg2[now_x, now_y, :] = img1[now_y, now_x, :]
'''图像镜像'''
myImg3 = img1.copy()
mirror_w = int(w/2)
for j in range(0, h):
for i in range(0, mirror_w):
myImg3[j, i, :] = img1[j, w-i-1, :]
'''图像灰度化'''
myImg4 = cv2.cvtColor(img1, cv2.COLOR_BGR2GRAY)
'''图像加噪'''
coutn = 100000#噪点数量
myImg5 = img1.copy()
for k in range(0, coutn):
xi = int(np.random.uniform(0, myImg5.shape[0]))#获取噪点的随机位置
xj = int(np.random.uniform(0, myImg5.shape[1]))
if myImg5.ndim == 2:#加噪点
myImg5[xi, xj] = 255
elif myImg5.ndim == 3:
myImg5[xi, xj, 0] = 25
myImg5[xi, xj, 1] = 20
myImg5[xi, xj, 2] = 20
cv2.imshow('img1', myImg1)
cv2.imshow('img2', myImg2)
cv2.imshow('img3', myImg3)
cv2.imshow('img4', myImg4)
cv2.imshow('img5', myImg5)
cv2.waitKey()
cv2.destroyAllWindows()