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()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/49005.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

小程序数据可视化:使用图表和可视化工具展示数据

在当今信息爆炸的时代,数据无疑是最珍贵的资源之一。然而,海量的数据如果不加以整理和展示,很难从中获取有价值的信息。这时候,数据可视化就发挥了重要作用,它能够通过图表和可视化工具将复杂的数据转化为直观的视觉形…

【爬虫练习之glidedsky】爬虫-基础2

题目 链接 爬虫往往不能在一个页面里面获取全部想要的数据,需要访问大量的网页才能够完成任务。 这里有一个网站,还是求所有数字的和,只是这次分了1000页。 思路 找到调用接口 可以看到后面有个参数page来控制页码 代码实现 import reques…

Vim学习(四)——命令使用技巧

命令模式 打开文本默认模式,按**【ESC】**重新进入 【/关键字】:搜索匹配关键字 G:最后一行 gg:第一行 hjkl:左下右上 yy: 复制一行 dd:删除一行 p:粘贴 u: 撤销插入模式 按**【i / a / o】**键均可进入文本编辑模式…

QT中按钮的基类QAbstractButton

QT中按钮的基类QAbstractButton 关于控件类的学习方法继承关系信号槽函数标题和图标按钮的 Check 属性 关于控件类的学习方法 控件类很多,API更多,但是不需要记忆知道控件对应的类名,通过帮助文档随用随查优先看帮助文档中控件对应的信号和槽…

【小沐学NLP】Python进行统计假设检验

文章目录 1、简介1.1 假设检验的定义1.2 假设检验的类型1.3 假设检验的基本步骤 2、测试数据2.1 sklearn2.2 seaborn 3、正态分布检验3.1 直方图判断3.2 KS检验(scipy.stats.kstest)3.3 Shapiro-Wilk test(scipy.stats.shapiro)3.…

回归预测 | MATLAB实现WOA-RF鲸鱼优化算法优化随机森林算法多输入单输出回归预测(多指标,多图)

回归预测 | MATLAB实现WOA-RF鲸鱼优化算法优化随机森林算法多输入单输出回归预测(多指标,多图) 目录 回归预测 | MATLAB实现WOA-RF鲸鱼优化算法优化随机森林算法多输入单输出回归预测(多指标,多图)效果一览…

【LeetCode】盛最多水的容器

盛最多水的容器 题目描述算法分析编程代码 链接: 盛最多水的容器 题目描述 算法分析 编程代码 class Solution { public:int maxArea(vector<int>& height) {int left 0;int right height.size()-1;int ret 0;while(left < right){int n min(height[left],h…

LMLCCS_UPDATEFO2 LCL DB 方法 get_normvector 头寸 A 中RC 1 内部错误,过账时报错<转载>

原文链接&#xff1a;https://blog.csdn.net/XFYBB/article/details/129174579 物料的成本中心&#xff0c;作业价格没有维护 再用FCMLHELP&#xff0c;重新创建一下 se37&#xff0c;FCMLHELP_CHECK_TESTFLAG&#xff0c;打断点&#xff0c;跳过PW

Python快速检验数据分布

假设检验的前提是确定数据的分布&#xff0c;本文介绍Python检验数据样本是否服从一定分布。使用方法是柯尔莫可洛夫-斯米洛夫检验&#xff08;Kolmogorov–Smirnov test&#xff0c;K-S test&#xff09;&#xff0c;K-S检验方法适用于探索连续型随机变量的分布&#xff0c;对…

vue3 pdf、word等文件下载

效果&#xff1a; <div class"byLawBox"><div class"titleBox">规章制度公示</div><div class"contentBox"><TableList:loading"byLawloading"ref"byLawtablistRef":hasImport"false"…

基于Vue的3D饼图

先看效果&#xff1a; 再看代码&#xff1a; <template><div class"container"><div style"height: 100%;width: 100%;" id"bingtu3D"></div></div></template> <script> import "echarts-liqu…

springboot日志文件名称为什么叫logback-spring.xml

如题&#xff0c;为什么springboot日志配置文件叫logback-spring.xml&#xff1f; 在整个项目中搜索 logback-spring.xml 并没有搜索到。 先看一下 org.springframework.boot.context.logging.LoggingApplicationListener#initialize protected void initialize(ConfigurableEn…

亚信科技AntDB数据库通过GB 18030-2022最高实现级别认证,荣膺首批通过该认证的产品之列

近日&#xff0c;亚信科技AntDB数据库通过GB 18030-2022《信息技术 中文编码字符集》最高实现级别&#xff08;级别3&#xff09;检测认证&#xff0c;成为首批通过该认证的数据库产品之一。 图1&#xff1a;AntDB通过GB 18030-2022最高实现级别认证 GB 18030《信息技术 中文编…

【PostgreSQL】导出数据库表(或序列)的结构和数据

导出 PostgreSQL 数据库的结构和数据 要导出 PostgreSQL 数据库的结构和数据&#xff0c;你可以使用 pg_dump 命令行工具。pg_dump 可以生成一个 SQL 脚本文件&#xff0c;其中包含了数据库的结构&#xff08;表、索引、视图等&#xff09;以及数据。下面是如何使用 pg_dump 导…

vs2017实现linux远程编译报错“CMake 缺少以下功能:serverMode“解决方案

背景 window系统vs2017使用cmake实现linux远程调试和编译时&#xff0c;搭建的环境报CMake 缺少以下功能:“serverMode”。请参阅 https://aka.ms/linuxcmakeconfig 了解详细信息错误&#xff0c;如何解决&#xff1f;经排查&#xff0c;发现远程开发环境的cmake版本不支持ser…

前端-Sass和Less区别

Less和Sass都是CSS预处理器&#xff0c;它们提供了更强大、更灵活的方式来编写CSS样式。以下是Less和Sass之间的一些区别&#xff1a; 语法&#xff1a;Less使用类似于CSS的语法&#xff0c;而Sass使用类似于Ruby的语法。Less使用大括号 {} 和分号 ; 来表示代码块和语句&#x…

c语言面向对象开发

继承和多态是c的灵魂&#xff0c;如何使用c语言模拟这一机制&#xff0c;是使用c语言实现面向对象开发的关键。 一. 不存在继承 /* class TestClass { private:int a;int b; public:void func0(int param0,int param1);void func1(int param2,int param3); }; */ str…

R语言11-R语言中的条件结构

if语句&#xff1a; if 语句用于在条件为真时执行一段代码块。 x <- 10 if (x > 5) {print("x is greater than 5") }if-else语句&#xff1a; if-else 语句允许您在条件为真和条件为假时执行不同的代码块。 x <- 3 if (x > 5) {print("x is grea…

问题描述:在Windows下没有预装ImageMagick工具

问题描述:在Windows下没有预装ImageMagick工具 # WInR输入cmd回车进入命令行,执行以下命令查看版本信息 magick --version没有预装ImageMagick工具 解决方案&#xff1a;下载安装ImageMagick 官网下载:ImageMagick-7.1.1-15-Q16-x64-dll.exe 下载之后&#xff0c;一路下一步…

WPS右键新建没有docx pptx xlsx 修复

解决wps右键没有新建文档的问题 右键没有新建PPT和Excel 1 wps自带的修复直接修复没有用 以上不管咋修复都没用 2 先编辑注册表 找到 HKEY_CLASSES_ROOT CTRLF搜文件扩展名 pptx docx xlsx 新建字符串 三种扩展名都一样操作 注册表编辑之后再次使用wps修复 注册组件&am…