python3.8+OpenCV4.1.2笔记1——对图片操作并输出

1.修改颜色通道输出图片。

#Numpy数组操作
import cv2 as cv
import numpy as np


def access_pixels(image):
    print(image.shape)
    height=image.shape[0]#高度
    width=image.shape[1]#宽度
    channels=image.shape[2]#通道数:3
    print("width:%s,height:%s,channels:%s"%(width,height,channels))
    for row in range(height):
        for col in range(width):
            for c in range(channels):
                pv=image[row,col,c]
                image[row,col,c]=255-pv
    cv.imshow("pixels.demo",image)


print("----------------------------")
str="D:/pycode/test.jpg"
img=cv.imread(str,1)#读取图像
cv.namedWindow("Input iamge",cv.WINDOW_NORMAL)
# cv.resizeWindow("Input image",150,300)
cv.imshow("Input image",img)#显示图像,第一个参数为显示时的标题,第二个为读取的图像名称
t1=cv.getTickCount()#获取当前CPU 转的圈数
access_pixels(img)
t2=cv.getTickCount()
print("time:%s ms"%((t2-t1)/cv.getTickFrequency()))#cv.getTickFrequency()获取每一毫秒走多少,两者相除即为多少毫秒

cv.waitKey(0)
cv.destroyAllWindows()

运行结果:

2.创建图片

#Numpy数组操作
import cv2 as cv
import numpy as np

# 利用zeros和ones创建图片(one:全1矩阵。zeros:全0矩阵)
def create_image1():
    img=np.zeros([400,400,3],np.uint8)#img=np.zeros([400,400,1],np.uint8)是定义一张单通道图片
    # 将img的三个通道全部设为255,即白色图片
    img[:,:,0]=np.ones([400,400])*255#400*400的图片的第一维赋值255
    img[:,:,1]=np.ones([400,400])*255#第二维全部设置为255
    img[:,:,2]=np.ones([400,400])*255#第三维全是255
    cv.imshow("img1",img)



print("----------------------------")
str="D:/pycode/test.jpg"
create_image1()
cv.waitKey(0)
cv.destroyAllWindows()

结果:出现一张尺寸按规定的白色图片。

3.bitwise_not()像素取反

# 调用库函数实现像素取反
import cv2 as cv
import numpy as np

def inverse(image):
    dst=cv.bitwise_not(image)
    cv.imshow("later",dst)

str="D:/pycode/test.jpg"
src=cv.imread(str)
cv.imshow("before",src)
t1=cv.getTickCount()
inverse(src)
t2=cv.getTickCount()
print("耗时:%s"%((t2-t1)/cv.getTickFrequency()))#输出时间
cv.waitKey(0)
cv.destroyAllWindows()

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值