import cv2
img = cv2.imread('jk.jpg', cv2.IMREAD_GRAYSCALE)
cv2.imshow('Before modify', img)
for y in range(110,140):
for x in range(110,210):
img[y,x] = 255
cv2.imshow('After modify', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
读取灰度图像与编辑。
import cv2
img = cv2.imread('jk.jpg')
cv2.imshow('image',img)
print(f'修改前img[115,110]={img[115,110]}')
img[115:125,110:210] = [255, 0, 255] # 紫色
img[125:135, 110:210] = 255 # 白色
img[135:145, 110:210] = [0,255,255] # 黄色
cv2.imshow('After modify', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
读取彩色图像与编辑。
import cv2
img = cv2.imread('street.png',cv2.IMREAD_UNCHANGED) # png读取,否则会转为三通道
cv2.imshow("Before modify", img)
img[0:200, 0:200, 3] = 128
cv2.imwrite("street_128.png", img)
cv2.waitKey(0)
cv2.destroyAllWindows()
编辑含Alpha通道的彩色图像。
import numpy as np
image = np.random.randint(0,200,size=[3,5],dtype=np.uint8)
print(f"iamge = \n{image}")
print(f'修改前image.item(1,3)={image.item(1,3)}')
print("-"*50)
image.itemset((1,3), 255)
print(f"修改后image=\n{image}")
print(f'修改后image.item(1,3)={image.item(1,3)}')
Numpy的item()和itemset()函数。
ndarray.item(行,列) # 返回行、列索引的值。
ndarray.itmset(索引,值) # 将值设定给指定索引的ndarray变量。
彩色图像:
ndarray.item(行,列,通道) # 返回行、列、通道索引的值。
ndarray.itmset((行,列,通道),值) # 将值设定给指定索引的ndarray变量。
import cv2
img = cv2.imread('jk.jpg')
cv2.imshow('Before modify', img)
print(f'修改前img[115,110,1]={img.item(115,110,1)}')
for z in range(115,145):
for y in range(110,210):
for x in range(0,3):
img.itemset((z,y,x), 255)
cv2.imshow('After modify',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
ROI:
import cv2
img = cv2.imread('jk.jpg')
cv2.imshow('Hung image', img)
face = img[30:220, 80:250]
cv2.imshow("Face", face)
cv2.waitKey(0)
cv2.destroyAllWindows()
马赛克:
import cv2
import numpy as np
img = cv2.imread("jk.jpg")
cv2.imshow("Hang image", img )
face = np.random.randint(0,255,size=[190,170,3],dtype=np.uint8)
img[30:220, 80:250] = face
cv2.imshow("Face", img)
cv2.waitKey(0)
cv2.destroyAllWindows()
感兴趣区域复制到其它图像上:
import cv2
import numpy as np
img = cv2.imread('jk.jpg')
cv2.imshow('Hung image', img)
usa = cv2.imread('money.jpg')
cv2.imshow('money', usa)
face = img[30:220, 80:250]
usa[30:220, 80:250] = face
cv2.imshow('Image', usa)
cv2.waitKey(0)
cv2.destroyAllWindows()