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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
初次前来,多多关照!
[***.217.46.12]2024年05月02日 02时51分15秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
未来已至,5G加持下的云游戏将走向何方?
2019-05-01
计算机网络 —— 网络层 1.
2019-05-01
Android生命周期
2019-05-01
Android 之 ContentProvider 与 ContentResolver
2019-05-01
【接口自动化】
2019-05-01
Spring Boot 安全框架 Shiro 入门
2019-05-01
如何用一句话激怒互联网人?
2019-05-01
用 Python 爬了点你们喜欢的电影
2019-05-01
推荐一位川大零基础转行 Python 的人生勇士
2019-05-01
讲真,做Python一定不要只会一个方向!
2019-05-01
Python 2大限来了!113天后自生自灭,官方不再维护更新
2019-05-01
GitHub 热榜第一的 Python 抢票神器!节假日能用上
2019-05-01
Python解惑之:True与False
2019-05-01
你要的微信小程序终于来了
2019-05-01
为什么执行 x in range(y) 如此快?
2019-05-01
有了这些 Chrome 插件,效率提升10倍(建议收藏)
2019-05-01
Python 开发者都会遇到的错误:UnboundLocalError
2019-05-01
只有1%的程序员搞懂过浮点数陷阱
2019-05-01
一名 Google 工程师的大数据处理经验
2019-05-01
从一个骗子身上学到的
2019-05-01