首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在Python OpenCV中添加只填充零而不影响非零的内容

在Python OpenCV中,可以使用函数cv2.fillPoly()来实现只填充零而不影响非零内容的操作。该函数可以用于在图像中绘制多边形,并将指定区域填充为指定的颜色。

以下是使用cv2.fillPoly()函数的步骤:

  1. 导入必要的库:
代码语言:txt
复制
import cv2
import numpy as np
  1. 创建一个与图像大小相同的空白图像:
代码语言:txt
复制
image = np.zeros((height, width, channels), dtype=np.uint8)

其中,height、width和channels分别表示图像的高度、宽度和通道数。

  1. 定义多边形的顶点坐标:
代码语言:txt
复制
points = np.array([[x1, y1], [x2, y2], [x3, y3], ...], dtype=np.int32)

其中,[x1, y1]、[x2, y2]、[x3, y3]等表示多边形的顶点坐标。

  1. 将多边形绘制在图像上:
代码语言:txt
复制
cv2.fillPoly(image, [points], color)

其中,[points]表示多边形的顶点坐标列表,color表示填充的颜色,可以是单个整数值或RGB颜色值。

完整的代码示例:

代码语言:txt
复制
import cv2
import numpy as np

# 创建空白图像
height, width, channels = 500, 500, 3
image = np.zeros((height, width, channels), dtype=np.uint8)

# 定义多边形的顶点坐标
points = np.array([[100, 100], [200, 100], [200, 200], [100, 200]], dtype=np.int32)

# 绘制多边形并填充为白色
color = (255, 255, 255)
cv2.fillPoly(image, [points], color)

# 显示图像
cv2.imshow("Filled Polygon", image)
cv2.waitKey(0)
cv2.destroyAllWindows()

在上述示例中,我们创建了一个大小为500x500的空白图像,并定义了一个四边形的顶点坐标。然后使用cv2.fillPoly()函数将该四边形填充为白色,并显示结果图像。

推荐的腾讯云相关产品和产品介绍链接地址:

  • 腾讯云图像处理(Image Processing):https://cloud.tencent.com/product/img
  • 腾讯云视频处理(Video Processing):https://cloud.tencent.com/product/vod
  • 腾讯云人工智能(AI):https://cloud.tencent.com/product/ai
  • 腾讯云物联网(IoT):https://cloud.tencent.com/product/iotexplorer
  • 腾讯云移动开发(Mobile Development):https://cloud.tencent.com/product/mobdev
  • 腾讯云对象存储(COS):https://cloud.tencent.com/product/cos
  • 腾讯云区块链(Blockchain):https://cloud.tencent.com/product/baas
  • 腾讯云虚拟专用网络(VPC):https://cloud.tencent.com/product/vpc
  • 腾讯云安全产品(Security):https://cloud.tencent.com/product/safe
  • 腾讯云云原生应用引擎(TKE):https://cloud.tencent.com/product/tke
  • 腾讯云数据库(Database):https://cloud.tencent.com/product/cdb
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

学习OpenCV,新手常会问我十个问题

OpenCV怎么没有填充几何对象方法?...解答: 记得在绘制这些几何形状时候把线宽参数设置为-1即可填充,大于会绘制描边。记住就是这个参数lineWidth, 大于0表示描边,小于表示填充。对所有绘制图形API都是一样。...解答: 因为它支持了视频编解码,不支持音频,所以没有声音,更深入一点原因,OpenCV是视觉处理库,主要处理图像与视频,不是声音。...我是学习OpenCV C++版本还是Python版本 解答: 其实OpenCV现在SDK版本支持 C++, Python,Java,JS等语言。...10 OpenCV4与前面的版本有什么区别 解答: 其实在传统图像处理模块没有什么区别,但是OpenCV4对深度神经网络支持,已经集成支持tensorflow/caffe 离线模型,OpenVINO

1.2K60

学习OpenCV,新手常会问我十个问题 | 视觉入门

OpenCV怎么没有填充几何对象方法?...解答: 记得在绘制这些几何形状时候把线宽参数设置为-1即可填充,大于会绘制描边。记住就是这个参数lineWidth, 大于0表示描边,小于表示填充。对所有绘制图形API都是一样。...解答: 因为它支持了视频编解码,不支持音频,所以没有声音,更深入一点原因,OpenCV是视觉处理库,主要处理图像与视频,不是声音。...我是学习OpenCV C++版本还是Python版本 解答: 其实OpenCV现在SDK版本支持 C++, Python,Java,JS等语言。...10 OpenCV4与前面的版本有什么区别 解答: 其实在传统图像处理模块没有什么区别,但是OpenCV4对深度神经网络支持,已经集成支持tensorflow/caffe 离线模型,OpenVINO

1.3K30
  • opencv(4.5.3)-python(二十七)--傅里叶变换

    (一些链接被添加到附加资源,它用例子直观地解释了频率变换)。 现在我们来看看如何找到傅里叶变换。 Numpy傅里叶变换 首先我们将看到如何使用Numpy找到傅立叶变换。...这就是我们在图像梯度一章中看到情况。这也表明大部分图像数据存在于频谱低频区域。总之我们已经看到了如何在Numpy中找到DFT、IDFT等。现在让我们看看如何在OpenCV实现。...因此,如果你担心你代码性能,你可以在寻找DFT之前将数组大小修改为任何最佳大小(通过填充)。对于OpenCV,你必须手动填充。...但是对于Numpy来说,你指定FFT计算新大小,它就会自动为你填充。 那么我们如何找到这个最佳尺寸呢?OpenCV为此提供了一个函数,cv.getOptimalDFTSize()。...现在让我们用填充它(对于OpenCV来说),并找到它们DFT计算性能。你可以通过创建一个新数组并将数据复制到其中,或者使用cv.copyMakeBorder()来完成。

    76420

    OpenCV系列之傅里叶变换 | 三十

    您可以将相同想法扩展到图像。图像振幅在哪里急剧变化?在边缘点或噪声。因此,可以说边缘和噪声是图像高频内容。如果幅度没有太大变化,则它是低频分量。...这就是我们在“图像渐变”一章中看到。这也表明大多数图像数据都存在于频谱低频区域。无论如何,我们已经看到了如何在Numpy中找到DFT,IDFT等。现在,让我们看看如何在OpenCV中进行操作。...在上一节,我们创建了一个HPF,这次我们将看到如何删除图像高频内容,即我们将LPF应用到图像。它实际上模糊了图像。为此,我们首先创建一个高值(1)在低频部分,即我们过滤低频内容,0在高频区。...因此,如果您担心代码性能,可以在找到DFT之前将数组大小修改为任何最佳大小(通过填充)。对于OpenCV,您必须手动填充。但是对于Numpy,您指定FFT计算新大小,它将自动为您填充。...现在让我们用填充(对于OpenCV),并找到其DFT计算性能。您可以通过创建一个新数组并将数据复制到其中来完成此操作,或者使用cv.copyMakeBorder()。

    1.4K30

    OpenCV 教程 02: OpenCV 核心操作

    主要是以下四点: 访问像素值并修改它们 访问图像属性 设置感兴趣区域 (ROI) 拆分和合并图像 本节几乎所有的操作都主要与 Numpy 相关,不是 OpenCV。...比如,对于图像眼睛检测,首先对整个图像进行人脸检测。当获得人脸时,我们选择人脸区域并在其中搜索眼睛,不是搜索整个图像。它提高了准确性(因为眼睛总是在脸)和性能(因为我们在一个小区域内搜索)。...但它在卷积运算、填充等方面有更多应用。...除了 OpenCVPython 还提供了一个模块 time,有助于测量执行时间。另一个模块 profile 有助于获得关于代码详细报告,例如代码每个函数花费了多少时间,函数被调用了多少次等。...可以参考: Python 优化技术[1] Numpy 高级操作[2] IPython 时序和分析[3] 参考资料 [1] Python 优化技术: https://wiki.python.org/

    64410

    opencv(4.5.3)-python(七)--图像基本操作

    翻译及二次校对:cvtutorials.com 目标 学会: • 访问像素值并修改它们 • 访问图像属性 • 设置感兴趣区域(ROI) • 分割和合并图像 本节几乎所有的操作都主要与Numpy不是...要想用OpenCV写出更好优化代码,需要有良好Numpy知识。 (例子将在Python终端显示,因为大多数只是单行代码) 访问和修改像素值 让我们先加载一个彩色图像。...>> print( img.dtype ) uint8 注意:img.dtype在调试时非常重要,因为OpenCV-Python代码中大量错误是由无效数据类型引起。...图像ROI 有时,你必须对图像某些区域进行处理。对于图像眼睛检测,首先在整个图像上进行人脸检测。当得到一个人脸时,我们单独选择人脸区域并在其中搜索眼睛,不是搜索整个图像。...为图像制作边框(填充) 如果你想在图像周围创建一个边框,类似于一个相框,你可以使用cv.copyMakeBorder()。但它在卷积操作、填充等方面有更多应用。这个函数需要以下参数。

    60320

    【调研】GPU矩阵乘法性能预测——Machine Learning Approach for Predicting The Performance of SpMV on GPU

    通常,矩阵大部分值都是,因此在矩阵,将数值为0元素数目远远大于0元素数目,并且0元素分布无规律时,称为稀疏矩阵;反之,则称为稠密矩阵。         ...因为它为矩阵每一行使用一个线程向量(在我们实验是32个线程)。         由于ELL格式行大小(在填充之后)等于每行元素最大数量(max)。...第二节所示,ELL格式行大小(在填充之后)等于每行元素最大数量(max)。...由于电路每个节点通常与少数几个节点有连接关系,因此电路方程矩阵通常是稀疏度很高稀疏矩阵。         ...如何在GPU环境下加速矩阵运算,在很大程度上控制着EDA技术并行化性能。

    1.6K20

    实战解惑 | OpenCV如何提取不规则ROI区域

    、计算密度等,而且这些ROI区域往往不是矩形区域,一般都是不规则多边形区域,很多OpenCV初学者都不知道如何提取这些不规则ROI区域。...其实OpenCV中有个非常方便API函数可以快速提取各种非正常ROI区域。...提取ROI区域 在做这个之前,首先来了解一下什么图像处理mask(遮罩),OpenCV是如此定义Mask:八位单通道Mat对象,每个像素点值为或者区域。...当Mask对象添加到图像区上时,只有区域是可见,Mask中所有像素值为与图像重叠区域就会不可见,也就是说Mask区域形状与大小直接决定了你看到最终图像大小与形状。...一个具体示例如下: 可以看出,mask作用是可以 帮助我们提取各种不规则区域。OpenCV完成上述步骤操作只需要简单调用API函数 bitwise_and 即可。

    1.1K10

    VC++中使用OpenCV进行形状和轮廓检测

    如下面的图像Shapes.png中有三角形、矩形、正方形、圆形等,我们如何去区分不同形状,并且根据轮廓进行检测呢?...),消除噪声;计算轮廓周长(封闭或者封闭)或曲线长度,以指定精度逼近多边形曲线,计算顶点集合或灰度图像像素右上边界矩形,获取边界包围盒;然后轮廓多边形角落(顶点)个数objCor,根据objCor...判断轮廓多边形形状类型,特别注意矩形和正方形区别,我们根据轮廓宽高比来区分,当轮廓宽高比大于0.95或者小于1.05时我们可以认定轮廓为正方形 4、最后我们在第三步基础上,绘制轮廓或填充轮廓,颜色为粉色...以指定精度逼近多边形曲线 cout << conPoly[i].size() << endl; boundRect[i] = boundingRect(conPoly[i]); // 计算顶点集合或灰度图像像素右上边界矩形...3 HOURS with Python | Including 3xProjects | Computer Vision Learn-OpenCV-in-3-hours

    26900

    OpenCV如何提取不规则ROI区域

    其实OpenCV中有个非常方便API函数可以快速提取各种非正常ROI区域。...提取ROI区域 在做这个之前,首先来了解一下什么图像处理mask(遮罩),OpenCV是如此定义Mask:八位单通道Mat对象,每个像素点值为或者区域。...当Mask对象添加到图像区上时,只有区域是可见,Mask中所有像素值为与图像重叠区域就会不可见,也就是说Mask区域形状与大小直接决定了你看到最终图像大小与形状。...一个具体示例如下: ? 可以看出,mask作用是可以 帮助我们提取各种不规则区域。OpenCV完成上述步骤操作只需要简单调用API函数 bitwise_and 即可。...方法一: 通过手动选择,然后通过多边形填充即可做到,代码实现如下: import cv2 as cv import numpy as np src = cv.imread("D:/images/gc_test.png

    7K32

    实战解惑 | OpenCV如何提取不规则ROI区域

    其实OpenCV中有个非常方便API函数可以快速提取各种非正常ROI区域。...提取ROI区域 在做这个之前,首先来了解一下什么图像处理mask(遮罩),OpenCV是如此定义Mask:八位单通道Mat对象,每个像素点值为或者区域。...当Mask对象添加到图像区上时,只有区域是可见,Mask中所有像素值为与图像重叠区域就会不可见,也就是说Mask区域形状与大小直接决定了你看到最终图像大小与形状。...一个具体示例如下: ? 可以看出,mask作用是可以 帮助我们提取各种不规则区域。OpenCV完成上述步骤操作只需要简单调用API函数 bitwise_and 即可。...方法一: 通过手动选择,然后通过多边形填充即可做到,代码实现如下: import cv2 as cv import numpy as np src = cv.imread("D:/images/gc_test.png

    3.5K41

    【从学习OpenCV 4】图像添加高斯噪声

    经过几个月努力,小白终于完成了市面上第一本OpenCV 4入门书籍《从学习OpenCV 4》。...为了更让小伙伴更早了解最新版OpenCV 4,小白与出版社沟通,提前在公众号上连载部分内容,请持续关注小白。 ? ?...OpenCV 4同样没有专门为图像添加高斯噪声函数,对照在图像添加椒盐噪声过程,我们可以根据需求利用能够产生随机数函数来完成在图像添加高斯噪声任务。...需要注意是该函数属于OpenCV 4RNG类,是一个静态成员函数,因此在使用时候不能像使用正常函数一样直接使用,需要首先创建一个RNG类变量,之后通过访问这个变量函数进行调用这个函数,具体使用方式在代码清单...代码清单5-7 myGaussNoise.cpp图像添加高斯噪声 1. #include 2.

    3.8K40

    使用OpenCVPython和模板匹配来播放“Waldo在哪里?”

    在这篇博客文章,我将向您展示如何使用OpenCV和模板匹配功能来查找总是隐藏在视野之外讨厌Waldo。...假设:我假设你已经在python2.6或python2.7环境安装了NumPy和OpenCV。同样,你可以在这里下载一个预配置了所有必需虚拟机。...正如你将在本文后面看到那样,我们只能用两行Python代码来完成这个任务 。其余代码只是处理逻辑,参数解析,以及显示解决难题到我们屏幕上。...首先,--puzzle是我们沃尔多谜题图像,--waldo路径,是沃尔多查询图像路径。 再一次提醒,我们目标是使用模板匹配在谜题图像查找查询图像。...下一步是构建一个透明图层,使图像除了 Waldo所有东西都变黑。在第32行,我们首先用填充和我们谜题图像一样大小mask来进行初始化。通过用填充图像,我们可以创建一个全黑图像。

    2.5K60

    资源 | 10x Python开发者必读:本月Python文章TOP 10

    排名是根据机器测量出内容质量和各种人为因素(包括参与度和流行度)。...这10篇文章涉及主题有:Flake,视频合成,遗传算法,验证码破解,Chutes & Ladders游戏,Chatbot,OpenCV,反向传播算法,Memoization技术 这是一个非常有公信力列表排名...模拟Chutes & Ladders游戏(作者:Jake VanderPlas) Chutes and Ladders游戏是一个经典孩子棋盘游戏,当对其有所了解后,你会发现这个游戏其实是无记忆,即一次滚动效果取决于你当前位置...,不是你经过位置。...第 9 名 Pythonmemoization技术:如何在Python缓存函数结果(作者:Dan Bader) Memoization技术是用作软件优化技术特定缓存类型,它可以用来加速你Python

    956150

    精心整理了100+Python字符串常用操作,收藏备用!

    字符串切片操作 检查字符串是否为空 计算字符串字符出现次数多种方法 将 String 变量转换为 float、int 或 boolean 向字符串填充添加不同方法 去掉字符串 space...Python数字 为什么使用'=='或'is'比较字符串有时会产生不同结果 如何在 Python 为字符串添加 X 个空格 如何在Python替换字符串特定字符串实例 如何连接两个变量,一个是字符串...、小写还是混合大小写 Python计数字符串出现在给定字符串Python3 中用前导填充字符串 在 Python 检查两个字符串是否包含相同字母和数字 在Python字符串字符之间添加空格有效方法...在标点符号上拆分字符串 在 Python 中比较字符串 用填充数字字符串 找到两个字符串之间差异位置 Python填充字符串到固定长度 Python字符串查找示例 删除字符串开头和结尾...在 Python 数字和字符串之间添加空格 如何在 Python 中去除空格 字符串中最后一次出现分隔符处拆分字符串 在Python中将字符串最后一个字母大写 使用指定字符居中对齐字符串 格式字符串动态计算填充

    14.5K20

    灵魂追问 | 教程那么多,你……看完了吗?

    教程 | 无监督学习两个概率模型:稀疏编码与自编码器 深度 | 从任务到可视化,如何理解LSTM网络神经元 教程 | 将注意力机制引入RNN,解决5大应用领域序列预测问题 教程 | 听说你了解深度学习最常用学习算法...你要先理解图论基本定义与形式 数学 干货 | 机器学习需要哪些数学基础? 深度神经网络数学,对你来说会不会太难? 观点 | Reddit 热门话题:如何阅读并理解论文中数学内容?...回归问题 每个Kaggle冠军获胜法门:揭秘Python模型集成 教程 | 如何在Python快速进行语料库搜索:近似最近邻算法 2....和OpenCV计算道路交通 教程 | 深度学习 + OpenCVPython实现实时视频目标检测 教程 | 如何通过57行代码复制价值8600万澳元车牌识别项目 教程 | 百行代码构建神经网络黑白图片自动上色系统...教程 | TensorFlow 官方解读:如何在多系统和网络拓扑构建高性能模型 教程 | 如何使用TensorFlow高级API:Estimator、Experiment和Dataset 教程

    6.1K101

    独家|OpenCV 1.6 改变图像对比度和亮度!

    目标 在本教程, 你将学习到以下内容: 访问像素值; 用初始化矩阵; 学习CV :: saturate_cast作用及其有用原因; 学习有关像素变换很酷知识; 提高图像亮度实例。.../changing_contrast_brightness_image/BasicLinearTransformsDemo.java Python 版本请访问: https://github.com/opencv.../opencv/blob/master/samples/python/tutorial_code/imgProc/changing_contrast_brightness_image/BasicLinearTransforms.py...注意(适用于C ++代码): 我们利用 image.at(y,x)[c]来访问图像各个像素,其中ÿ是行号, X是列号,C是B,G或R(0,1或2); 由于α⋅p(i,j)+β 操作值可能溢出或为整数...当添加一个恒定偏差之后,整个直方图右移,为所有的像素增加了一个恒定偏置。 修改参数α将修改水平轴展幅,如果α <1,色彩值将被压缩,其结果是图像对比度降低。 ?

    1.7K40

    10x Python开发者必读:本月Python文章TOP 10

    排名是根据机器测量出内容质量和各种人为因素(包括参与度和流行度)。...这10篇文章涉及主题有:Flake,视频合成,遗传算法,验证码破解,Chutes & Ladders游戏,Chatbot,OpenCV,反向传播算法,Memoization技术 这是一个非常有公信力列表排名...模拟Chutes & Ladders游戏(作者:Jake VanderPlas) Chutes and Ladders游戏是一个经典孩子棋盘游戏,当对其有所了解后,你会发现这个游戏其实是无记忆,即一次滚动效果取决于你当前位置...,不是你经过位置。...第 9 名 Pythonmemoization技术:如何在Python缓存函数结果(作者:Dan Bader) Memoization技术是用作软件优化技术特定缓存类型,它可以用来加速你Python

    1.2K70

    OpenCV4.5.4更新了!OpenCV5.0还远吗?

    更新内容 详细内容可查看对应ChangeLog: https://github.com/opencv/opencv/wiki/ChangeLog#version454 GSoC 2021已经结束。...DNN 模块补丁: 改进层/激活/支持更多模型: 添加了对 OpenVINO 2021.4.1 LTS 版本支持 添加了对具有 FP32 输出模型或具有 1D 布局输出支持 GRU ,...CumSum , Max , Min , ExpandDims 具有非对称填充固定卷积 固定 Unsqueeze (ONNX opset 13) 修复了 OpenCL 内核几个内存访问问题 为 TextRecognitionModel...添加了对具有 FP32 输出模型或具有 1D 布局输出支持 G-API 模块: 待定 以及许多其他贡献: 将基于 DNN 的人脸检测和人脸识别添加到modules/objdetect :#20422...:支持带有纯 Python 模块 OpenCV 扩展:#20611 调试:为 cv::Mat 添加 gdb 漂亮打印机:#20547 在 iOS 和 macOS 上为 Mat 添加 Quicklook

    1.1K10
    领券