从雪花电视谈起——在Python中使用OpenCV
程序:
import cv2
jpg=cv2.imread("01.jpg")
print(jpg.shape)
print(jpg[:,:,0])
cv2.imshow("test",jpg)
cv2.waitKey(0)
结果:
(720, 1051, 3)
[[193 190 187 ... 46 52 59]
[192 189 185 ... 21 27 34]
[189 186 182 ... 20 26 33]
...
[213 213 210 ... 255 250 244]
[214 215 211 ... 255 255 255]
[220 221 216 ... 255 255 255]]
程序5-1:
#模仿老式黑白电视的噪声图
import cv2
import numpy as np
while True:
noiseTV = np.random.random((600, 800, 3))
noiseTV *= 50
noiseTV = noiseTV.round()
cv2.imshow("noiseTV", noiseTV)
if cv2.waitKey(1) & 0xff == ord('q'):
break
结果:
程序5-2:
import numpy as np
import cv2
img = np.mat(np.zeros((300, 300)))
cv2.imshow("test", img)
cv2.waitKey(0)
结果:
程序:
import cv2
import numpy as np
import os
flatNumpyArray=np.array(bytearray(os.urandom(90000)))
grayImage=flatNumpyArray.reshape(300,300)
cv2.imshow('RandomGray.png',grayImage)
bgrImage=flatNumpyArray.reshape(100,300,3)
cv2.imshow('RandomColor.png',bgrImage)
cv2.waitKey(0)
结果:
程序5-3:
import numpy as np
import cv2
import os
#image = np.mat(os.zeros(160000))
image=os.urandom(150000)
imageByteArray = bytearray(image)
print(imageByteArray)
imageBGR = np.array(imageByteArray).reshape(300, 500)
cv2.imshow("cool", imageBGR)
cv2.waitKey(0)
结果:
bytearray(b'\xa9J\xa9\xcb/l@A`^\xfe0\xdc+\x08\x89V\xbb\xa93....
程序5-4:
import cv2
import numpy as np
import os
randomByteArray = bytearray(os.urandom(120000))#随机生成一个长度为120000的数组
flatNumpyArray = np.array(randomByteArray).reshape(300, 400)
cv2.imshow("cool", flatNumpyArray)
cv2.waitKey(0)
结果:
程序5-5:
import cv2
import numpy as np
img = np.zeros((300,300))
img[0,0] = 255
cv2.imshow("img",img)
cv2.waitKey(0)
结果:
方块左上角有一个白点:
程序5-6:
import cv2
import numpy as np
img = np.zeros((300,300))
img[:,10] = 255
img[10,:] = 255
cv2.imshow("img",img)
cv2.waitKey(0)
结果:
程序5-7:
import numpy as np
import cv2
from scipy import ndimage
kernel33 = np.array([[-1,-1,-1],#增加中心像素的亮度
[-1,8,-1],
[-1,-1,-1]])
kernel33_D = np.array([[1,1,1],#减少中心像素的亮度
[1,-8,1],
[1,1,1]])
img = cv2.imread("lena.jpg",0)
cv2.imshow("img",img)
downlight_img = ndimage.convolve(img,kernel33_D)
cv2.imshow("downlight_img",downlight_img)
uplight_img = ndimage.convolve(img,kernel33)
cv2.imshow("uplight_img",uplight_img)
cv2.waitKey()
结果:
程序5-8:
import numpy as np
import cv2
from scipy import ndimage
img = cv2.imread("lena.jpg",0)
blurred = cv2.GaussianBlur(img,(11,11),0)#高斯模糊
gaussImg = img - blurred
cv2.imshow("img",gaussImg)
cv2.waitKey()
结果: