Python-opencv学习第四课:图像像素的读写

Python-opencv学习第四课:图像像素的读写

文章目录

  • Python-opencv学习第四课:图像像素的读写
  • 一、学习内容
  • 二、代码部分
    • 1.引入库
    • 2.定义一个图像像素读写函数和读入图片并展示
    • 3.打印图像维度和进行图像像素写操作以及像素取反
    • 4.显示图片并保存,设置关闭窗口
    • 5.完整代码
  • 三、运行结果
  • 总结


一、学习内容

记录笔者学习Python-opencv第四课:图像像素的读写,代码资料来源于网络贾老师视频。

二、代码部分

1.引入库

代码如下:

import cv2 as cv
import numpy as np

2.定义一个图像像素读写函数和读入图片并展示

代码如下:

def pixel_demo():
    image=cv.imread("C:/Users/akaak/Pictures/OpenCV/1.png") #BGR 0-255
    cv.imshow("input", image)

3.打印图像维度和进行图像像素写操作以及像素取反

代码如下:

h, w, c = image.shape#打印图像维度
    for row in range(h):#行
        for col in range(w):#列
            b,g,r=image[row,col]#图像写像素
            image[row,col]=(0,g,r)#取反操作,可对其进行更改

4.显示图片并保存,设置关闭窗口

代码如下:

cv.imshow("result", image)
    cv.imwrite("C:/Users/akaak/Pictures/OpenCV/csdn/4/savedexample.png", image)
    cv.waitKey(0)
    cv.destroyAllWindows()

5.完整代码

代码如下:

import cv2 as cv
import numpy as np

def read_demo_():
    image = cv.imread("C:/Users/akaak/Pictures/OpenCV/1.png")  # BGR 0-255
    cv.imshow("input", image)
    cv.waitKey(0)
    cv.destroyAllWindows()

def color_space_demo_():
    image = cv.imread("C:/Users/akaak/Pictures/OpenCV/1.png")  # BGR 0-255
    gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY)#将bgr转换为gray
    hsv = cv.cvtColor(image, cv.COLOR_BGR2HSV)#将bgr转换为hsv
    thsv=cv.cvtColor(image,cv.COLOR_HSV2BGR)#将HSV转换为BGR
    # cv.namedwindow("input",cv.WINDOW.AUTOSIZE)
    cv.imshow("gray", gray)#显示一个窗口名为gray的gray图像
    cv.imshow("hsv", hsv)#显示一个窗口名为hsv的hsv图像
    cv.imshow("thsv", thsv)  # 显示一个窗口名为thsv的thsv图像
    cv.waitKey(0)#相当于按键操作,当键盘触发时候,显示图片窗口关闭,否则不关闭
    cv.destroyAllWindows()

def mat_demo_():
    image = cv.imread("C:/Users/akaak/Pictures/OpenCV/1.png")  # BGR 0-255
    h,w,c=image.shape #打印图像的维度 H高度 W宽度 C通道数,色彩图片有三通道,灰色图片零通道
    roi = image[100:200, 100:200, :]  # 感兴趣局部区域像素分布 H高度100-200像素,W宽度100-200像素。灰度图像就没有最后一个冒号
    blank=np.zeros((h,w,c),dtype=np.uint8)#产生一个空白窗口,需要说明H,W,C以及字节数,这是区别于np.zeros_like()函数。
    #blank[60:200, 60:280, :] = image[60:200, 60:280, :]  # blank和image要一致才能匹配
    #blank = np.copy(image)#使用copy函数直接进行复制,将blank上述注释掉
    blank=image#实现原图到blank的复制
    cv.imshow("image", image)#显示原图窗口
    cv.imshow("blank", blank)#显示blank空白窗口
    cv.waitKey(0)#相当于按键操作,当键盘触发时候,显示图片窗口关闭,否则不关闭
    cv.destroyAllWindows()

def pixel_demo():
    image=cv.imread("C:/Users/akaak/Pictures/OpenCV/1.png") #BGR 0-255
    cv.imshow("input", image)
    h, w, c = image.shape#打印图像维度
    for row in range(h):#行
        for col in range(w):#列
            b,g,r=image[row,col]#图像写像素
            image[row,col]=(0,g,r)#取反操作,可对其进行更改
    cv.imshow("result", image)
    cv.imwrite("C:/Users/akaak/Pictures/OpenCV/csdn/4/savedexample.png", image)
    cv.waitKey(0)
    cv.destroyAllWindows()

if __name__ == "__main__":
    pixel_demo()

三、运行结果

Python-opencv学习第四课:图像像素的读写_第1张图片三通道取反之后的图像

Python-opencv学习第四课:图像像素的读写_第2张图片保留g通道取反

Python-opencv学习第四课:图像像素的读写_第3张图片保留g,r通道取反

Python-opencv学习第四课:图像像素的读写_第4张图片0gr通道图片

总结

本文介绍了笔者学习Python-opencv第四课:图像像素的读写,学习了像素的读写操作,取反等操作和保存处理好的图片(代码资料来源于网络贾老师视频)

你可能感兴趣的:(opencv,python,图像处理)