当前位置: 首页 > news >正文

open cv学习 (一)像素的操作

open cv 入门

像素的操作

demo1
import cv2
import os
import numpy as np# 1、读取图像
# imread()方法# 设置图像的路径
Path = "./img.png"
# 设置读取颜色类型默认是1代表彩色图 0 代表灰度图
# 彩色图
flag = 1
# 灰度图
#flag = 0# 读取图像,返回值是一个图像对象image = cv2.imread(Path, flag)# 0 ~ 255代表黑色到纯白色# 打印该图像输出的是部分像素值
# print(image)# 2、显示图像# 显示图像cv2.imshow("QQ", image)# 等待按键按下,单位是mscv2.waitKey()# 按下任意按键后摧毁所有窗口
cv2.destroyAllWindows()# 3、保存图像# 创建目录
# 在当前目录下创建一个目录
directory = "./My_Test_Photos"
# 如果不存在则创建
if not os.path.exists(directory):os.makedirs(directory)# 保存图像到指定目录
file_path = os.path.join(directory, "test01.jpg")
cv2.imwrite(file_path, image)# 4、获取图像属性# shape (垂直像素数 水平像素数 通道数)# size  (像素点总个数 = 垂直像素数 × 水平像素数 × 通道数) 灰度图通道数为 1# dtype 图像的数据类型image_Color = cv2.imread(Path,0)
print(image_Color.shape)
print(image_Color.size)
print(image_Color.dtype)
demo2
import cv2image = cv2.imread("./cat.jpg")cv2.imshow("cat", image)for i in range(241, 292):for j in range(168, 219):image[i, j] = [255, 255, 255]
cv2.imshow("mycat", image)
cv2.waitKey()
cv2.destroyAllWindows()
demo3
import numpy as np# 创建一维数组和二维数组
n1 = np.array([1, 2, 3])
n2 = np.array([0.1, 0.2, 0.3])
n3 = np.array([[1, 2], [3, 4]])print(n1, n2, n3)# 创建浮点数类型
my_list = [1, 2, 3]n1 = np.array(my_list, dtype=np.float_)# n1 = np.array(my_list, dtype=float)
print(n1)
print(n1.dtype)
print(type(n1[0]))# 创建三维数组nd1 = [1, 2, 3]
nd2 = np.array(nd1, ndmin=3)print(nd2)
demo4
import numpy as np
# 指定维度数据类型未定义
n = np.empty([2, 3])print(n)# 创建全零数组
n1 = np.zeros((3, 3), dtype=np.uint8)print(n1)
# 创建全一数组
ones = np.ones((4, 4), np.float_)
print(ones)# 创建随机数组,三行三列,范围0-20
rand = np.random.randint(0, 20, (3, 3))print(rand)

demo5

import cv2
import numpy as np
# 在opencv中黑白图像是一个二维数组,彩色图像是一个三维数组# 创建黑白图像
flag = True
if flag:width = 200height = 100img = np.zeros((height, width), np.uint8)img[25:75, 50:100] = 255cv2.imshow("img", img)cv2.waitKey()cv2.destroyAllWindows()else:width = 200height = 100img = np.ones((height, width), np.uint8)*255cv2.imshow("img", img)cv2.waitKey()cv2.destroyAllWindows()
demo6
import cv2
import numpy as npwidth = 200
height = 100img = np.zeros((height, width), np.uint8)
for i in range(0, width, 40):img[:, i+20] = 255
cv2.imshow("img", img)
cv2.waitKey()
cv2.destroyAllWindows()
demo7
import cv2
import numpy as npwidth = 200
height = 100# 创建指定宽高、3通道、像素值都为0的图像img  = np.zeros((height, width, 3), np.uint8)blue = img.copy()blue[:, :, 0] = 255  # 通道1的所有像素值都为255green = img.copy()green[:, :, 1] = 255   # 通道2的所有像素值都为255red = img.copy()red[:, :, 2] = 255  # 通道3的所有像素值都为255
cv2.imshow("blue", blue)
cv2.imshow("green", green)
cv2.imshow("red", red)
cv2.waitKey()
cv2.destroyAllWindows()
demo8
import cv2
import numpy as np# 创建随机图像
width = 200
height = 100img = np.random.randint(256, size=(height, width, 3), dtype=np.uint8)cv2.imshow("img", img)
cv2.waitKey()
cv2.destroyAllWindows()
demo9
import cv2
import numpy as np# 拼接图像a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
c = np.array([7, 8, 9])
result = np.hstack((a, b, c))print(result)
demo10
import cv2
import numpy as np
# 垂直拼接
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
c = np.array([7, 8, 9])
result = np.vstack((a, b, c))print(result)
demo11
import cv2
import numpy as np
Path = "./cat.jpg"
img = cv2.imread(Path)
img_h = np.hstack((img, img))
img_v = np.vstack((img, img))cv2.imshow("img_h", img_h)
cv2.imshow("img_v", img_v)cv2.waitKey()
cv2.destroyAllWindows()

相关文章:

open cv学习 (一)像素的操作

open cv 入门 像素的操作 demo1 import cv2 import os import numpy as np# 1、读取图像 # imread()方法# 设置图像的路径 Path "./img.png" # 设置读取颜色类型默认是1代表彩色图 0 代表灰度图 # 彩色图 flag 1 # 灰度图 #flag 0# 读取图像,返回值…...

基于C#的消息处理的应用程序 - 开源研究系列文章

今天讲讲基于C#里的基于消息处理的应用程序的一个例子。 我们知道,Windows操作系统的程序是基于消息处理的。也就是说,程序接收到消息代码定义,然后根据消息代码定义去处理对应的操作。前面有一个博文例子( C#程序的启动显示方案(无窗口进程发…...

C语言刷题指南(一)

📙作者简介: 清水加冰,目前大二在读,正在学习C/C、Python、操作系统、数据库等。 📘相关专栏:C语言初阶、C语言进阶、数据结构刷题训练营、有感兴趣的可以看一看。 欢迎点赞 👍 收藏 ⭐留言 &am…...

VMware虚拟机Ubuntu无法连接网络的解决方法

一、解决办法 网络适配器设置 终端依次执行下面命令即可 sudo nmcli networking off sudo nmcli networking onsudo service network-manager start #或者 sudo service NetworkManager start成功出现这个图标,即代表网络连接成功。...

基于CentOS 7 部署社区版Haproxy

HAProxy是法国开发者 威利塔罗(Willy Tarreau) 在2000年使用C语言开发的一个开源软件,是一款具 备高并发(一万以上)、高性能的TCP和HTTP负载均衡器,支持基于cookie的持久性,自动故障切换,支 持正则表达式及web状态统计。 目录 1…...

Git和GitHub

文章目录 1.Git介绍2. 常用命令3. Git分支操作4. Git团队协作机制5. GitHub操作6. IDEA集成Git7.IDEA操作GitHub8. Gitee 1.Git介绍 Git免费的开源的分布式版本控制系统,可以快速高效从小到大的各种项目 Git易于学习,占地面积小,性能快。它…...

spring入门基本介绍及注入方式---详细介绍

一,spring的简介 Spring是一个开源框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。 提供了许多功能强大且易于使用的特性,使得开发者能够更加轻松地构建可维护且可扩展的应用程序,简单来说: Spring使用基…...

神经网络基础-神经网络补充概念-24-随机初始化

由来 在神经网络的训练过程中,权重和偏差的初始值对模型的性能和训练过程的收敛速度都有影响。随机初始化是一种常用的权重和偏差初始值设置方法,它有助于打破对称性,避免网络陷入局部最优解。 概念 当所有权重和偏差都被设置为相同的初始…...

K8S之存储卷

K8S之存储卷 一、emptyDir emptyDir:可实现Pod中的容器之间共享目录数据,但emptyDir存储卷没有持久化数据的能力,存储卷会随着Pod生命周期结束而一起删除二、hostPath hostPath:将Node节点上的目录/文件挂载到Pod容器的指定目录…...

8月17日,每日信息差

1、专家称无需太过担心EG.5变异株 2、快手职级体系调整,职级序列由双轨变单轨 3、抖音、火山引擎、中国电影资料馆发起“经典香港电影修复计划”,一年内将100部香港电影修复至4K版本。本次修复工作由火山引擎提供技术支持,与中国电影资料馆…...

VBA技术资料MF44:VBA_把数据从剪贴板粘贴到Excel

【分享成果,随喜正能量】人皆知以食愈饥,莫知以学愈愚,生命中所有的不期而遇都是你努力的惊喜.人越纯粹,就越能感受到美。大江、大河、大海、大山、大自然,这些风景从来都不会受“属于谁”的污染,人人都感受到它们的美…...

nestjs:nginx反向代理服务器后如何获取请求的ip地址

问题: 如题 参考: nodejsnginx获取真实ip-腾讯云开发者社区-腾讯云 「转」从限流谈到伪造 IP nginx remote_addr 解决办法: 1.设置nginx 对于代理部分,对http header添加Host、X-Real-IP、X-Forwarded-For(最重要&…...

STM32 F103C8T6学习笔记7:双机无线串口通信

今日尝试配通俩个C8T6单片机之间的无线串口通信,文章提供原理,源码,测试效果图,测试工程下载: 目录 传输不规范问题: 串口通信资源: 单个串口资源理解: 单片机串口资源&#xf…...

开源数据库Mysql_DBA运维实战 (DDL语句)

DDL DDL语句 数据库定义语言:数据库、表、视图、索引、存储过程. 例如:CREATE DROP ALTER DDL库 定义库{ 创建业务数据库:CREAATE DATABASE ___数据库名___ ; 数据库名要求{ a.区分大小写 b.唯一性 c.不能使用关键字如 create select d.不能单独使用…...

分布式 - 消息队列Kafka:Kafka生产者发送消息的分区策略

文章目录 01. Kafka 分区的作用02. PartitionInfo 分区源码03. Partitioner 分区器接口源码04. 自定义分区器05. 默认分区器 DefaultPartitioner06. 随机分区分配 RoundRobinPartitioner07. 黏性随机分区分配 UniformStickyPartitioner08. 为什么Kafka 2.4 版本后引入黏性分区策…...

从源代码编译构建Hive3.1.3

从源代码编译构建Hive3.1.3 编译说明编译Hive3.1.3更改Maven配置下载源码修改项目pom.xml修改hive源码修改说明修改standalone-metastore模块修改ql模块修改spark-client模块修改druid-handler模块修改llap-server模块修改llap-tez模块修改llap-common模块 编译打包异常集合异常…...

探索性测试及基本用例

1 测试决策5要素 测试目标:所有的重要任务都完成了,而剩下没做的事情是比较次要的,我们做到这一点就可以尽早尽可能地降低发布风险。 测试方法:测试是一个不断抉择的过程,测试人员必须理解运行测试用例时和分析现有信…...

MYSQL 作业三

创建一个student表格: create table student( id int(10) not null unique primary key, name varchar(20) not null, sex varchar(4), birth year, department varchar(20), address varchar(50) ); 创建一个score表格 create table score( id int(10) n…...

【深度学习 | 感知器 MLP(BP神经网络)】掌握感知的艺术: 感知器和MLP-BP如何革新神经网络

🤵‍♂️ 个人主页: AI_magician 📡主页地址: 作者简介:CSDN内容合伙人,全栈领域优质创作者。 👨‍💻景愿:旨在于能和更多的热爱计算机的伙伴一起成长!!&…...

Kali Linux中常用的渗透测试工具有哪些?

今天我们将继续探讨Kali Linux的应用,这次的重点是介绍Kali Linux中常用的渗透测试工具。Kali Linux作为一款专业的渗透测试发行版,拥有丰富的工具集,能够帮助安全专家和渗透测试人员检测和评估系统的安全性。 1. 常用的渗透测试工具 以下是…...

【专栏一:AI基础01】-【一张图讲清楚什么是大模型】

专栏一:AI基础入门-什么是大模型?大模型通俗解释大模型通俗解释 我们可以把大模型想象成一个超级大脑: 它在诞生之初,会先阅读人类海量的文字、知识、书籍、网页、对话,把所有信息消化成一套庞大的数学规律和语言逻辑&…...

如何快速解锁网易云NCM加密音乐:ncmdump完整实战指南

如何快速解锁网易云NCM加密音乐:ncmdump完整实战指南 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 你是否曾经下载了网易云音乐却发现那些.ncm格式的音乐文件只能在特定软件中播放?ncmdump就是你的数字音乐…...

OpenClaw隐私保护:QwQ-32B本地化部署数据边界控制

OpenClaw隐私保护:QwQ-32B本地化部署数据边界控制 1. 为什么需要关注OpenClaw的数据边界 去年我在帮一个法律团队搭建自动化文档处理系统时,第一次深刻意识到数据边界的重要性。他们处理的案件材料包含大量敏感信息,任何数据泄露都可能造成…...

Windows 10/11 下保姆级安装TagUI RPA工具指南(含Chrome路径配置与中文乱码解决)

Windows 10/11 下保姆级安装TagUI RPA工具指南(含Chrome路径配置与中文乱码解决) 在数字化转型浪潮中,机器人流程自动化(RPA)正成为提升效率的利器。作为一款开源RPA工具,TagUI以其轻量级和易用性吸引了众多…...

树莓派Pico RP2040 I2C实战:用AT24C02 EEPROM做个数据掉电保存的小项目

树莓派Pico RP2040 I2C实战:用AT24C02 EEPROM实现数据持久化存储 在嵌入式开发中,数据持久化存储是一个常见需求。当我们需要保存设备配置、运行日志或用户设置时,EEPROM(电可擦可编程只读存储器)因其非易失性特性成为…...

OpenClaw+GLM-4.7-Flash:个人旅行计划自动生成与优化

OpenClawGLM-4.7-Flash:个人旅行计划自动生成与优化 1. 为什么需要AI旅行助手? 去年夏天,我计划带家人去云南旅行时,花了整整三个晚上对比机票价格、筛选酒店、计算景点间的交通时间。当我在凌晨两点盯着Excel表格里混乱的日期和…...

驱动级输入模拟技术:突破Windows系统限制的Interceptor解决方案

驱动级输入模拟技术:突破Windows系统限制的Interceptor解决方案 【免费下载链接】Interceptor C# wrapper for a Windows keyboard driver. Can simulate keystrokes and mouse clicks in protected areas like the Windows logon screen (and yes, even in games).…...

科研人高效投稿指南:Paperxie AI 期刊论文写作,让你的成果更快见刊

paperxie-免费查重复率aigc检测/开题报告/毕业论文/智能排版/文献综述/期刊论文https://www.paperxie.cn/ai/journalArticleshttps://www.paperxie.cn/ai/journalArticles 一、开篇:被期刊论文困住的科研人,你不是一个人 做实验时可以通宵达旦&#xff…...

突破游戏视觉定制边界:LeaguePrank的安全实现与创新应用

突破游戏视觉定制边界:LeaguePrank的安全实现与创新应用 【免费下载链接】LeaguePrank 项目地址: https://gitcode.com/gh_mirrors/le/LeaguePrank 如何在不触及游戏核心文件的前提下,为英雄联盟客户端打造个性化视觉体验?随着玩家对…...

终极压枪指南:5步掌握PUBG罗技鼠标宏精准射击

终极压枪指南:5步掌握PUBG罗技鼠标宏精准射击 【免费下载链接】logitech-pubg PUBG no recoil script for Logitech gaming mouse / 绝地求生 罗技 鼠标宏 项目地址: https://gitcode.com/gh_mirrors/lo/logitech-pubg logitech-pubg是一款专为《绝地求生》玩…...