OpenCV更改像素与修改图像通道的示例分析
发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,本篇文章为大家展示了OpenCV更改像素与修改图像通道的示例分析,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1. 效果图原图 VS 更改右下某个像素为红色,
千家信息网最后更新 2025年01月19日OpenCV更改像素与修改图像通道的示例分析
本篇文章为大家展示了OpenCV更改像素与修改图像通道的示例分析,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
1. 效果图
原图 VS 更改右下某个像素为红色,更改左上角1/4区域为绿色,效果图如下:
裁剪感兴趣区域:分别截取左上角、右上角、左下角、右下角,各占1/4;效果图如下:
原图 VS 图像单通道灰度图效果如下:
左上原图 VS 右上R通道图 VS 左下G通道图 VS 右下B通道图效果如下:
图像4通道 全透明图 VS 不透明效果图:
2. 源码
# USAGE# python opencv_getting_setting.py --image fjdj.png# 导入必要的包import argparseimport cv2import imutilsimport numpy as np# 构建命令行参数及解析# --image 磁盘图片路径,默认名称为当前py文件同级目录:fjdj.jpgap = argparse.ArgumentParser()ap.add_argument("-i", "--image", type=str, default="fjdj.jpg", help="path to the input image")args = vars(ap.parse_args())ap = argparse.ArgumentParser()# 加载图像,获取空间维度(宽度、高度),展示原始图像到屏幕image = cv2.imread(args["image"])image = imutils.resize(image, width=430)origin = image.copy()(h, w) = image.shape[:2]cv2.imshow("Original", image)# 图像以Numpy数组存在,获取左上角,图像索引从0开始# 图像以BGR通道表示,因为最开始BGR是标准,后来调整为RGB(b, g, r) = image[0, 0]print("Pixel at (0, 0) - Red: {}, Green: {}, Blue: {}".format(r, g, b))# 获取x=380,y=380的像素值,图像想象为M*N的矩阵,M为行,N为列(b, g, r) = image[380, 380]print("Pixel at (380, 380) - Red: {}, Green: {}, Blue: {}".format(r, g, b))# 更新x=50,y=20的像素为红色image[380, 380] = (0, 0, 255)(b, g, r) = image[380, 380]print("Pixel at (380, 380) - Red: {}, Green: {}, Blue: {}".format(r, g, b))# 计算图像的中心(cX, cY) = (w // 2, h // 2)# 使用数组切片获取左上角1/4的部分tl = image[0:cY, 0:cX]cv2.imshow("Top-Left Corner", tl)# 同样的,用数组切片裁剪 右上角、左下角、右下角部分,并展示tr = image[0:cY, cX:w]br = image[cY:h, cX:w]bl = image[cY:h, 0:cX]cv2.imshow("Top-Right Corner", tr)cv2.imshow("Bottom-Right Corner", br)cv2.imshow("Bottom-Left Corner", bl)# 使用像素切片来更改像素区域的颜色image[0:cY, 0:cX] = (0, 255, 0)# 展示更新像素后的图片cv2.imshow("Updated (Top-Left Corner to Green)", image)gray = cv2.cvtColor(origin, cv2.COLOR_BGR2GRAY)cv2.imshow("Gray", gray)(h, w) = origin.shape[:2]zeros = np.zeros((h, w), dtype="uint8")# 将origin分离为红色,绿色和蓝色通道, 然后我们使用Numpy 零数组分别构造每个通道的表示形式(B, G, R) = cv2.split(origin)R = cv2.merge([zeros, zeros, R])G = cv2.merge([zeros, G, zeros])B = cv2.merge([B, zeros, zeros])cv2.imshow("B G R", np.hstack([B, G, R]))# 构建输出帧 原图在左上角 红色通道右上角 绿色通道右下角 蓝色通道左下角output = np.zeros((h * 2, w * 2, 3), dtype="uint8")output[0:h, 0:w] = originoutput[0:h, w:w * 2] = Routput[h:h * 2, 0:w] = Goutput[h:h * 2, w:w * 2] = Bcv2.imshow("origin vs R vs G vs B", imutils.resize(output, width=700))alpha0 = np.dstack([origin, np.ones((h, w), dtype="uint8") * 0])cv2.imshow("alph 0", alpha0)cv2.imwrite("alph 0.png", alpha0)alpha1 = np.dstack([origin, np.ones((h, w), dtype="uint8") * 255])cv2.imshow("alph 255", alpha1)cv2.imwrite("alph 255.png", alpha1)cv2.waitKey(0)
上述内容就是OpenCV更改像素与修改图像通道的示例分析,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。
通道
图像
像素
效果
左上角
原图
效果图
数组
红色
区域
绿色
示例
分析
内容
图片
技能
知识
蓝色
部分
更新
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
深圳软件开发大专学历
绍兴基础网络技术有哪些
我的世界服务器极限生存怎么开
随着网络技术的迅速发展
万方数据库官网下载
半宽节点服务器
gpu服务器和cpu的区别
广东服务器机柜怎么挑选
网络安全标题优美
奖虫app软件开发
增量服务器
新起点软件开发
安卓软件开发基础知识
数据库解压怎么做
服务器日常管理和维护
服务器安全保护是什么意思
ecshop数据库无法连接
网络安全法所规定的主管部门
课工场数据库代码
架设手游服务器教程
数据库测试TPC-DS
法律与网络安全主题
网站服务器下载
北京Net软件开发经理
郑州哪里有学习软件开发
上海智能化软件开发服务平均价格
游戏移动软件开发
windows服务器授权
sugar 数据库
大学校园网络安全威胁