python模块opencv之图片操作(2)

来源:互联网 发布:11淘宝销量前十名产品 编辑:程序博客网 时间:2024/06/05 17:25

大家一起学机器学习啦!

图片操作太多了,这里包括了

1.平铺图像

2.转置图像

3.灰度化

4.加噪点

import cv2import numpy as npfn = '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 = 0img_y = 0for 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 = 0img_y = 0myImg2 = 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] = 20cv2.imshow('img1', myImg1)cv2.imshow('img2', myImg2)cv2.imshow('img3', myImg3)cv2.imshow('img4', myImg4)cv2.imshow('img5', myImg5)cv2.waitKey()cv2.destroyAllWindows()

原创粉丝点击