5 计算机视觉处理库OpenCV

本文通过多个实例展示了如何使用Python结合OpenCV进行图像处理,包括生成随机图像、添加特殊效果以及图像增强等操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

从雪花电视谈起——在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()

结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值