cv2小记——基本图像操作
发布日期:2021-06-30 15:01:22 浏览次数:2 分类:技术文章

本文共 2072 字,大约阅读时间需要 6 分钟。

# coding: utf-8# !/usr/bin/python"""@File       :   figure_control.py@Author     :   jiaming@Modify Time:   2020/1/29 16:12@Contact    :   https://blog.csdn.net/weixin_39541632@Version    :   1.0@Desciption :   图像基础操作                获取像素值并修改                获取图像的属性                图像的 ROI()                图像通道的拆分以及合并"""import osimport sysimport numpy as npimport cv2from matplotlib import pyplot as pltrawPath = os.path.abspath(__file__)currentFile = os.path.basename(sys.argv[0])  # figure.pydataPath = rawPath[:rawPath.find(currentFile)] + r'static\\'def func1():    """    修改像素方式一    :return:    """    # 读入一个图片    img = cv2.imread(dataPath + 'blank.png')  # 5x5    px = img[4, 4]  # [255 255 255]    # 修改对应位置的 rgb    img[4, 4] = (0, 0, 0)    # 保存图片    cv2.imwrite(dataPath + 'blank_save.png', img)def func2():    """    另一种方式修改像素    :return:    """    # 读入一个图片    img = cv2.imread(dataPath + 'blank.png')  # 5x5    for i in range(3):        print(img.item(0, 0, i), end=' ')  # 255 255 255    for i in range(3):        img.itemset((0, 0, i), 0)    # 保存图片    cv2.imwrite(dataPath + 'blank_save.png', img)def func3():    """    获取图像属性, 二维码处理    :return:    """    img = cv2.imread(dataPath + 'none.png', cv2.IMREAD_GRAYSCALE)  # 5x5    print(img.shape)  # (5, 5, 3) 如果图像是灰度图,返回值仅有行数和列数    # 修改对应位置的 rgb    img[img.shape[0] - 1, img.shape[0] - 1] = 240    # 保存图片    cv2.imwrite(dataPath + 'none_save.png', img)    # img.size 返回图像像素个数    # img.dtype 返回图像的数据类型def func4(img):    """    移动图片区域    :return:    """    x1, x2, y1, y2 = -1    k1, k2, z1, z2 = -1    tmp = img[x1:x2, y1:y2]    img[k1:k2, z1:z2] = tmpdef func5(img):    """    拆分及合并图像通道    :return:    """    b, g, r = cv2.split(img)  # 耗时    img = cv2.merge(b, g, r)    # img[:, :, 2] = 0 所有像素的红色通道都为 0def func6():    """    为图像扩边    :return:    """    # cv2.copyMakeBorder()    # src: 输入图像    # top, bottom, left, right :对应边界的像素数目    # borderType 要添加哪种类型的边界    # cv2.BORDER_CONSTANT: 添加有颜色的常数值边界,还需要 value    # cv2.BORDER_REFLECT:边界元素的镜像    # cv2.BORDER_REPLICATE: 重复最后一个元素    # cv2.BORDER_WRAP:    # value 边界颜色

转载地址:https://jiaming.blog.csdn.net/article/details/104109021 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:cv2小记——图像算数运算
下一篇:cv2小记——用滑动条做调色板

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2024年05月02日 02时51分15秒