【OpenCv 4 Python 3.7】Numpy数组操作

在pycharm中(python3.7)安装cv2/opencv 直接拧干水份,上干货 先在 https://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy 这个上面找到对应于自己python版本的opencv,我的python是3.7的,我看了很多资料,说python2.7要用3.1的opencv,所以我就直接下载的是下面这个,大家如果不敢确定自己应该下载那个版本的,可以根据我下面写的这个试试: python2.7-----------------------3.1Opencv python3.0/python3.0±-------- 阅读详情

图片以矩阵的形式存在电脑里,需要用到数组操作来完成对图像的处理

Numpy数组操作

Numpy包介绍-www.numpy.org
 遍历数组中的每个像素点
 修改数组中像素点的值
 data\dtype\size\shape\len
在这里插入图片描述

常用的有两个API: zeros和ones

1 np.ones(size) 可以创建任意维度的数组,各个元素值均为1 
2 np.zeros(size,dtype) 同上,但各个元素值为0.默认元素类型为浮点数

使用示例:


 1    img = np.zeros([256, 256, 3], np.uint8)
 2     #创建长宽为256的图片,三通道(BGR),像素大小为8位无符号整数
 3     img[: , : , 0] = np.ones([256,256])*255
 4     #设置图片的颜色B通道为255,也就是蓝色
 5     cv.imshow("new image", img)
 6 
 7     #单通道的灰度图像
 8     img1 = np.ones([400, 400, 1], np.uint8)
 9     img1 = img1 * 147
10     cv.imshow("new image", img1)

图片填充 image.fill(pixel)

转换维度 image.reshape(size)

使用示例:

1 m1 = np.ones([30, 30], np.uint8) #创建单通道的灰度图形
2 m1.fill(12)
3 print(m1)
4 cv.imshow("m1", m1)
5 #reshape注意size大小匹配 30*30=10*90
6 m2 = m1.reshape([10,90])
7 print(m2)
8 cv.imshow("m2", m2)

对pixel的简单操作:方法一:遍历; 方法二:API

 1 def access_pixels(image):
 2     print(image.shape)
 3     height = image.shape[0]
 4     width = image.shape[1]
 5     channels = image.shape[2]
 6     print("width : %s, height : %s, channels : %s" %(width, height, channels))
 7     for i in range(height):
 8         for j in range(width):
 9             for k in range(channels):
10                 pv = 255 - image[i, j, k]
11                 image[i, j, k] = pv
12     cv.imshow("pixels_demo", image)
13 def inverse(image):
14     #和上一个函数的for循环功能类似
15     dst = cv.bitwise_not(image)
16     cv.imshow("inverse demo", dst)

分别运行两个函数发现使用API比循环遍历快不少。(python运行比较慢,API是C++写的)

计算函数运行时间:

1 t1 = cv.getTickCount()
2 access_pixels(src) #需要测试时间的函数
3 t2 = cv.getTickCount()
4 time = (t2-t1)/cv.getTickFrequency()
5 print("time : %s ms" %(time*1000))

代码实现(部分):

import cv2 as cv
import numpy as np

def access_pixels(image):
    print(image.shape);
    height = image.shape[0]
    width = image.shape[1]
    channels = image.shape[2] #通道数
    print("width : %s, height : %s channels : %s"%(width, height, channels))
    for row in range(height):
        for col in range(width):
            for c in range(channels):
                pv = image[row, col, c]
                image[row, col, c] = 255 - pv
    cv.imshow("pixels_demo", image)


def inverse(image):
    dst = cv.bitwise_not(image)  #像素取反

    cv.imshow("inverse demo", dst)


def create_image():
    """
    img = np.zeros([400, 400, 3], np.uint8) #长 宽 渠道数 类型
    #img[: , : , 0] = np.ones([400, 400])*255
    img[:, :, 2] = np.ones([400, 400]) * 255 #乘以255是rgb,乘以127是灰度图像
    cv.imshow("new image", img)

    img = np.ones([400, 400, 1], np.uint8)
    img = img * 0
    cv.imshow("new image", img)
    cv.imwrite("D:/myImage.png", img)
    """

    m1 = np.ones([3, 3], np.float) #3*3 的数组
    m1.fill(12222.388)
    print(m1)

    m2 = m1.reshape([1, 9])  #转换维度
    print(m2)

    m3 = np.array([[2,3,4], [4,5,6],[7,8,9]], np.int32)
    #m3.fill(9)
    print(m3)

print("--------- Hello Python ---------")
src = cv.imread("E:/ji_qi_xue_xi/opencv_kejian/opencv_python_image/aaa.jpg") # blue, green red
cv.namedWindow("input image", cv.WINDOW_AUTOSIZE)
cv.imshow("input image", src)
t1 = cv.getTickCount()
create_image()
t2 = cv.getTickCount()
time = (t2-t1)/cv.getTickFrequency();
print("time : %s ms"%(time*1000))
cv.waitKey(0)

cv.destroyAllWindows()
python opencv4安装_python 3.7.4 安装 opencv的教程 python 3.7.4 安装 opencv的教程明确一下,我们需要使用python来调用opencv中的库函数,所以需要安装opencv-python。主要需要安装:1. opencv-python2. numpy第一步先来安装opencv-python。方法一:可以直接在cmd中使用pip install opencv-python我遇到了以下的问题(找不到一个满足当前python版本的ope... 阅读详情

相关推荐

《完美部署》————centos6.x ,7 上安装opencv3.0.0 python2.7.9【补充+mac安装OpenCV】

风雨(QQ:307156252) centos, python, cmake, opencv

风雨的专栏 8441

opencv 增强 java_使用Numpy+OpenCV来增强灰度图像

在日常生活中,我们经常会扫描纸张把它们转换成图像,但这些图像往往存在阴影,我们有各种各样的工具可以在线增强这些图像,使它们的亮度更亮,并消除这些图像中的阴影。那有没有方法可以手动去除阴影呢?比如我们可以将任何图像作为灰度图像加载到我们的代码中,并在几秒钟内获得输出,而无需任何应用程序的帮助。这是可以通过使用基本的Numpy操作和一些openCV函数来实现。我们使用了下面的图片作为例子,它是用手机...

weixin_35140642的博客 444

win7系统下配置openCV python环境附加 numpy +scipy安装

本文系原创,转载请注明。 最近在学习CMT跟踪算法的时候,遇到了一点小困难,就是作者的源码是python写的openCV程序,作为半路出道的小白,不得不想办法将程序运行起来。在网上查找到的资源大多不够详细,所以特地写这篇博客,分享一下,win7系统下,如何配置python写的openCV程序环境,因为CMT算法用到了numpy和scipy,这里一并说明这两个扩展程序的安装。 我的电脑是win7

johnnyconstantine的专栏 4946

python3.7对应的numpy版本_cv2: numpy.core.multiarray failed to import

$ pip install opencv-python -i https://pypi.mirrors.ustc.edu.cn/simple/ Looking in indexes: https://pypi.mirrors.ustc.edu.cn/simple/ Requirement already satisfied: opencv-python in d:programfilespytho...

weixin_39597323的博客 6883

numpy+opencv 两个函数库

Python+opencv+numpy函数库!用于开发照片处理的

AI编程助手Cursor如何革新经济学研究:从计量模型到可视化全流程实战

在数据科学和人工智能技术蓬勃发展的今天,如何高效地将前沿AI工具融入专业领域的研究工作流,成为提升科研效率的关键。其核心原理在于通过自然语言交互,将研究者的专业问题转化为机器可执行的指令,从而实现人机协作的范式转移。这一技术的核心价值在于大幅降低非计算机背景研究者的编程门槛,将精力从繁琐的代码实现中解放出来,更聚焦于学科本身的思想与逻辑。尤其在经济学、金融学等高度依赖数据分析和计量建模的领域,AI编程助手能够快速处理数据清洗、模型估计、可视化及结果解释等任务。具体到应用场景,研究者可以利用结构化提示词工程,

weixin_42531579的博客 296

在Raspberry PI 4 上安装OpenCV 4.5.4+ Python3.7

准备工作1:拓展文件系统 首先你要确定你有没有拓展文件系统?如果没有的话需要线进行设置: sudo raspi-config 选择高级选项菜单 然后选择拓展文件系统 之后系统会提示你重启,如果没有的话通过命令重启 sudo reboot 准备工作2:安装依赖关系 第一步需要更新和升级现有的软件包: sudo apt-get update sudo apt-get upgrade 这可能需要花费你几分钟的时间,如果速度过慢可以选择换软件源 : 1 在命令窗口输入 sudo ..

weixin_49019886的博客 2896

保姆级教程:用NILMTK和REDD数据集,5分钟跑通你的第一个负荷分解模型

本文提供了一份详细的NILMTK和REDD数据集负荷分解模型教程,适合零基础用户快速上手。从环境准备、数据获取到模型构建和评估,全程仅需5分钟即可完成。特别适合希望快速入门非侵入式负荷分解(NILM)的开发者,涵盖数据预处理、模型训练及结果可视化等关键步骤。

weixin_30493401的博客 442

python之pyinstaller打包问题系列(二)

ImportError: ERROR: recursion is detected during loading of "cv2" binary extensions. Check OpenCV in

qq_46158060的博客 7674

CAPL实战:从零构建HEX文件解析器,赋能UDS刷写

本文详细介绍了如何使用CAPL从零构建HEX文件解析器,以支持UDS刷写操作。通过解析HEX文件格式、设计状态机、优化数据结构与算法,实现高效准确的固件数据处理,并提供了与UDS刷写流程对接的工程化实践建议。

weixin_28726391的博客 444

深入解析SerDes系统中的时钟数据恢复电路(CDR)——基于Cadence的PLL/Bang-Bang/PS-PI架构实现与仿真

本文深入解析SerDes系统中的时钟数据恢复电路(CDR),重点探讨基于Cadence平台的PLL、Bang-Bang和PS-PI三种架构的实现与仿真。通过详细的技术对比和工程实践案例,揭示CDR在高速串行通信中的关键作用,并提供TSMC 28nm工艺下的优化策略与故障排查经验,助力工程师应对10Gbps以上SerDes设计挑战。

weixin_29202687的博客 256

pythonopencv项目_OpenCV中的numpy如何在Python项目中使用

OpenCV中的numpy如何在Python项目中使用发布时间:2020-12-11 14:07:08来源:亿速云阅读:89作者:Leah今天就跟大家聊聊有关OpenCV中的numpy如何在Python项目中使用 ,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Python OpenCV存储图像使用的是Numpy存储,所以可以将Numpy当做...

weixin_30340269的博客 458

【AI黑话日日新】什么是对比学习?

模型效果高度依赖大规模、高质量的人工标注数据。数据标注不仅成本高昂、周期漫长,在医疗、工业、小众垂类等场景中,甚至难以获取足量的标注样本,严重限制了模型的泛化能力与应用边界。自监督学习的出现,为解决这一问题提供了全新思路——无需人工标注标签,而是利用数据自身的结构与内在关联,构建自生成的监督信号完成模型预训练,再通过微调适配下游任务。在众多自监督学习方法中,对比学习(Contrastive Learning)

专注:太空算力、AI infra、异构调度、大模型成本工程 730

Windows环境下Anaconda4.6+Python3.7+OpenCV4.1+Pycharm机器视觉编程环境搭建

Windows环境下Anaconda4.6+Python3.7+OpenCV4.1+Pycharm环境搭建 本文介绍在window7或windows10操作系统下,安装配置Anaconda4.6(Python3.7)+OpenCV4.1+Pycharm的过程。 之前写过一篇Windows下安装Anaconda4.2+Python3.5+OpenCV4.1的文章,由于最近版本迭代更新,发现原...

iracer的博客 2万+

SAP Fiori 会话超时全解析:从 Launchpad 到 Identity Authentication 的统一策略

SAP Fiori会话超时机制解析与配置策略 本文深入探讨SAP Fiori项目中的会话超时机制,分析其对系统安全和用户体验的双重影响。文章系统拆解了SAP Fiori Launchpad与SAP Cloud Identity Services之间的会话超时工作原理,重点介绍了两种超时机制:服务器驱动的超时(通过SESSION_TIMEOUT_STOP_DATA_REFRESH参数控制)和UI驱动的超时(通过SESSION_TIMEOUT_INTERVAL_IN_MINUTES参数控制)。文中结合制造业产线

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 213

YOLOv8改进:全网原创首发 | 新颖的多尺度卷积注意力(MSCA),即插即用,助力小目标检测 | NeurIPS2022

多尺度卷积注意力(MSCA),有效地提取上下文信息;1)作为注意力MSCA使用;

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 3844

最新openCV-Python安装教程(opencv-python版本4.4.0, Python版本: 3.9)

本文是最新的opencv-python 安装教程。 以前的一键安装 pip install opencv-python 在新版本上并不能使用。本文会按照4步详细的介绍。 opencv-python 版本:4.4.0 Python 版本: 3.9 第一步: 打开cmd,进入到你的pip.exe 所在位置, 即在你的python 安装路径里找到scripts文件夹, 比如我的路径是: C:\Users\15162\AppData\Local\Programs\Python\Python39\Scripts (不

家里蹲大学摸鱼学专业优秀毕业生的博客 5万+

OpenClaw实战-行政与HR必备:AI驱动的办公自动化

智能会议纪要自动生成会议时间智能协调自动提醒和跟进简历智能筛选和匹配度分析面试安排自动化入职办理流程化通知公告一键发布发票识别和报销辅助资产管理数字化让AI处理繁杂的事务性工作,让您有更多时间专注于更有价值的战略和管理任务。

gaoxiang_120的专栏 220

OpenCV-python numpy使用和基本作图

安装pycharm和需要的软件包来进行代码的编辑直接编辑代码导入,然后进行包的下载。

y_k_j_c的博客 2276

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

python 3.7.4 安装 opencv

明确一下,我们需要使用python来调用opencv中的库函数,所以需要安装opencv-python。 主要需要安装: 1. opencv-python 2. numpy 第一步先来安装opencv-python。 方法一:可以直接在cmd中使用 pip install opencv-python 我遇到了以下的问题(找不到一个满足当前python版本的op...

yocichen 8140

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

C/C++调用Python [OpenCV与Numpy]

C/C++调用Python [opencv与numpy] 目前的情况下,如果你有一个深度学习模型,很想在项目中使用,但模型是用python写的,项目使用的是C++,怎么办?直观的做法是从C++调用python解释器,本文遇到的情景是C++环境下有张图片,需要将其中一个区域(ROI)进行放大(超分辨率重建),放大算法是python环境下的函数(pytorch模型),之后在C++环境下进行后续处理,假...

ziweipolaris的博客 1万+

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

python numpy.random的基础教程(附opencv 图片转数组、数组转图片)

文章介绍了:1) randint()生成整数随机数组;2) uniform()生成浮点数随机数组;3) rand()和randn()分别生成均匀分布和正态分布随机数;4) shuffle()打乱数组顺序;5) choice()实现概率抽样。特别展示了图像处理应用:通过将图片转换为NumPy数组进行通道分离/重组,以及利用随机数组生成"雪花图"。最后通过一个原神抽卡模拟器演示了choice()的动态概率控制功能,完整呈现了NumPy在随机数生成和数据处理方面的强大能力。

2302_76790436的博客 1737

Python2.7安装Opencv3

Python2.7上安装Opencv2的教程网上有很多,我安装的是Python2.7,安装Opencv2按照网上的教程很顺利,但是在自己学习OpenCV-Python Tutorials教程时,cv2.connectedComponentsWithStats()这个函数不能使用,在Stackoverflow上有人说是这个函数只在Opencv3中有,故想着安装下Opencv3 系统:Win

高速旋转的等离子体 1万+

opencv-python学习笔记3-数组矩阵

NumPy(Numerical Python的缩写)是一个开源的Python科学计算库。它提供了一个强大的N维数组对象ndarray和用于操作这些数组的工具和函数。NumPy是许多其他科学计算和数据分析库(如SciPy、Pandas、Matplotlib、Scikit-learn等)的基础。

The_xz的博客 1717

python用numpy生成图片并保存_python 实现将Numpy数组保存为图像

python 实现将Numpy数组保存为图像第一种方案可以使用scipy.misc,代码如下:import scipy.miscmisc.imsave('out.jpg', image_array)上面的scipy版本会标准化所有图像,以便min(数据)变成黑色,max(数据)变成白色。如果数据应该是精确的灰度级或准确的RGB通道,则解决方案为:import scipy.miscmisc.toim...

weixin_35839384的博客 1万+

小白学python(opencv(numpy部分数组操作))

介绍 NumPy是Python中科学计算的基础包。它是一个Python库,提供多维数组对象,各种派生对象(如掩码数组和矩阵),以及用于数组快速操作的各种API,有包括数学、逻辑、形状操作、排序、选择、输入输出、离散傅立叶变换、基本线性代数,基本统计运算和随机模拟等等。 (百度百科啦) 使用 import numpy as np 如果我们希望两个列表对应项相加,则我们需要这样做,使用Python列表这样的代码是冗余的,而使用numpy则大大减少了代码的冗余。 eg: #使用Python列表 a = [1,2

Lucky Home 2万+
上一篇: 【OpenCv 4 Python 3.7】图像加载、显示、保存
下一篇: 【OpenCv 4 Python 3.7】色彩空间(颜色转换)
YL_python_C++_java
博客等级 码龄7年 1392粉丝 142原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值