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

Python图片裁剪的两种方式——Pillow和OpenCV

在这篇文章里我们聊一下Python实现图片裁剪的两种方式,一种利用了Pillow,还有一种利用了OpenCV。两种方式都需要简单的几行代码,这可能也就是现在Python那么流行的原因吧。...OpenCV对图片进行裁剪 首先,我们有一张原始图片,如下图所示: ? 然后,我们利用OpenCV对其进行裁剪,代码如下所示: import cv2 img = cv2.imread("....Pillow对图片进行裁剪 接下来,我们看一下使用Pillow如何对图片进行裁剪,代码如下所示: from PIL import Image img = Image.open("....首先我们使用open方法读取图片,然后查看它的size(这里的size和OpenCV中的shape是类似的),size的输出是(1920, 1080),也就是图片的宽度和高度。...然后,我们使用save方法保存裁剪得到的图片。如下图所示,Pillow可以同样完成OpenCV裁剪图片的工作。 ?

4.9K20

如何在canvas中模拟css的背景图片样式

笔者开源了一个Web思维导图mind-map,最近在优化背景图片效果的时候遇到了一个问题,页面上展示时背景图片是通过css使用background-image渲染的,而导出的时候实际上是绘制到canvas...设置重复,但是canvas笔者只找到一个createPattern()方法,且只支持设置重复效果,那么如何在canvas里模拟一定的css背景效果呢,不要走开,接下来一起来试试。...canvas的drawImage()方法 总的来说,我们会使用canvas的drawImage()方法来绘制背景图片,先来大致看一下这个方法,这个方法接收的参数比较多: 只有三个参数是必填的。...,高度没有设置,那么会根据图片的长宽比自动缩放,效果如下: 在canvas中模拟很简单,需要传给drawImage方法四个参数:img、x、y、width、height,img代表图片,x、y代表在画布上放置图片的位置...width、height,也就是图片在canvas中显示的宽高,而在处理background-position时会用到图片的宽高,但是我们传的还是图片的原始宽高,这样计算出来当然是有问题的,修改一下:

7.1K41
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【OpenCV】入门教学了解图像处理的基本原理

    如果你并没有学习过python,可以去看我的python专栏:python 本文的内容:图片的读取,RGB彩色通道,区域裁剪,绘制图像1和文字,均值滤波,特征提取,模板匹配,梯度算法,阈值算法,形态学操作...它以C++为核心语言开发,并提供了多种语言的绑定,包括Python、Java、C等,适用于多种操作系统,如Windows、Linux和macOS。 2....实际的处理中,我们很难遇到噪点这么严重的图片,更多情况下,我们会遇到干净背景中的少数几个噪点,使用均值滤波把它消除。...,比如均一的背景区域变成了黑色,有明暗变化的部分,比如边缘就变成了白色,我们知道一个几何图形的变化往往有剧烈的明暗变化,所以梯度算法也常常用于检测边缘。...OpenCV是一个集轻量、高效、开源与一身的被使用最广泛的计算机视觉工具,非常值得程序员的学习。

    12810

    Python批量制作抖音的卡点视频原来这么简单!

    本篇文章的目的是利用 Python 从一篮子素材中快速地剪辑卡点小视频这一操作。 ? 2 准 备 工 作 首先,对视频的剪辑需要用到「opencv」库,通过 pip3 安装到虚拟环境中。...# opencv 用于剪辑视频 pip3 install opencv-python 然而,通过 opencv 剪辑的视频只有画面,没有背景音乐。...下面通过 5 个步骤完成卡点视频的剪辑,分别是:剪辑开始视频、合并静态图片视频、合并上面两段视频、给视频加入水印、加入背景音乐。 第一步,我们需要从视频素材文件中剪辑一段 2s 的片段。...ps:为了保证每一张****静态图片都显示 0.5s,并且静态图片生成的视频与第一段视频使用同一帧率,因此我们应该针对每一张图片写入多次,即多帧数据。...利用视频的帧率与总帧数得到视频的总时长,然后利用 ffmpeg 命令对背景音乐做一次裁剪操作,使得视频的长度与背景音乐的时间长度一致。

    2.7K30

    Python用Pillow(PIL)进行简单的图像操作

    在Pillow中,RGBA的值表示为由4个整数组成的元组,分别是R、G、B、A。整数的范围0~255。RGB全0就可以表示黑色,全255代表黑色。...在Pillow中如何使用上述定义的坐标系表示一块矩形区域?许多函数或方法要求提供一个矩形元组参数。元组参数包含四个值,分别代表矩形四条边的距离X轴或者Y轴的距离。顺序是(左,顶,右,底)。...使用Pillow操作图像 了解了一些基础知识,可以上手了。首先从读取图片开始,很多图像处理库(如opencv)都以imread()读取图片。Pillow中使用open方法。 ? ?...来看个有趣的例子。 ? 以裁剪后的图像宽度和高度为间隔,在循环内不断粘贴在副本中,这有点像是在拍证件照。 ?...专业人士使用opencv是更好地选择。Python中使用import cv2开始使用吧!

    2.7K100

    使用Python和OpenCV检测图像中的多个亮点

    本文来自光头哥哥的博客【Detecting multiple bright spots in an image with Python and OpenCV】,仅做学习分享。...原文链接:https://www.pyimagesearch.com/2016/10/31/detecting-multiple-bright-spots-in-an-image-with-python-and-opencv...如果您想在图像中检测多个亮点,代码会稍微复杂一点,但不会太复杂。不过不用担心:我将详细解释每一个步骤。 看看下面的图片: ? 在这幅图中,我们有五个灯泡。...第7行我们开始循环遍历每个label中的正整数标签,如果标签为零,则表示我们正在检测背景并可以安全的忽略它(9,10行)。 否则,我们为当前区域构建一个掩码。...下面我提供了一个GIF动画,它可视化地构建了每个标签的labelMask。使用这个动画来帮助你了解如何访问和显示每个单独的组件: ? 然后第15行对labelMask中的非零像素进行计数。

    4.1K10

    使用OpenCV和Python计算视频中的总帧数

    一个读者的问题: 我需要用OpenCV计算视频文件中帧的总数。我发现的唯一的方法是对视频文件中的每一帧逐个循环,并增加一个计数器。有更快的方法吗?...在使用OpenCV和Python处理视频文件时,有两种方法来确定帧的总数: 方法1:使用OpenCV提供的内置属性访问视频文件元信息并返回帧总数的快速、高效的方法。...计算帧数的简单方法 在OpenCV中计算视频帧数的第一种方法非常快——它只是使用OpenCV提供的内置属性来访问视频文件并读取视频的元信息。...现在让我们来看看这个函数是如何在imutils中实现的: # import the necessary packages from ..convenience import is_cv3 import...我们需要is_cv3函数来检查实际的OpenCV使用的是cv2还是OpenCV的哪个版本。 我们在第5行定义count_frames函数。

    3.8K20

    总结 | 基于OpenCV提取特定区域方法汇总

    今天我们将一起探究如何使用OpenCV和Python从图像中提取感兴趣区域(ROI)。 在之间的文章中,我们完成了图像边缘提取,例如从台球桌中提取桌边。...使用非极大抑制可以解决此问题,即我们查看所有重叠的轮廓,然后选择面积最大的轮廓作为最终候选轮廓。逻辑非常简单,因此我们不需要任何内置的OpenCV或Python函数。...对于黑色背景,我们创建一个黑色画布,然后使用OpenCV函数“ bitwise_and()”以及先前获得的蒙版在其上进行绘制。 ?...在黑色背景上提取的ROI 对于白色背景,我们首先创建一个白色画布,然后通过使用OpenCV函数“ drawContours()”绘制轮廓为黑色(R,G,B = 0,0,0)且厚度为FILLED的轮廓,如下所示创建颜色反转的蒙版...用于ROI提取的备用倒置掩模(图像源作者) 然后,我们使用OpenCV “ add()”函数将此反向蒙版添加到先前获得的黑色背景中,并获得相同的结果,但使用白色背景。 ?

    4.2K20

    基于OpenCV实战:车牌检测

    为了让Pytho n相应地处理输入数据,我们将导入适当的库。我们将使用OpenCV(cv2)读取图像。...转换为灰度不仅可以减少计算复杂性,而且对于查找轮廓(稍后的步骤)也很重要,因为OpenCV可以从黑色背景中的白色连接对象中查找轮廓。 ? 调整大小并转换为灰度后的图像: ?...我们将OpenCV中的Canny函数应用到预处理后的图像上,以勾勒出其边缘或颜色渐变。 在应用Canny函数之前,我们将首先对图像应用平滑方法以减少噪点。...要将这个想法应用到Python,我们首先将OpenCV findContours函数应用到图4上以查找所有闭合轮廓。...找到后,我们将使用boundingRect函数来定位要裁剪的角点。 ? ? ? 4.找到矩形后,该形状内的信息将为车牌号。 找到正确的轮廓后,我们需要从该轮廓中提取文本。

    1.6K20

    基于OpenCV的特定区域提取

    今天我们将一起探究如何使用OpenCV和Python从图像中提取感兴趣区域(ROI)。 在之间的文章中,我们完成了图像边缘提取,例如从台球桌中提取桌边。...使用非极大抑制可以解决此问题,即我们查看所有重叠的轮廓,然后选择面积最大的轮廓作为最终候选轮廓。逻辑非常简单,因此我们不需要任何内置的OpenCV或Python函数。...对于黑色背景,我们创建一个黑色画布,然后使用OpenCV函数“ bitwise_and()”以及先前获得的蒙版在其上进行绘制。 ?...对于白色背景,我们首先创建一个白色画布,然后通过使用OpenCV函数“ drawContours()”绘制轮廓为黑色(R,G,B = 0,0,0)且厚度为FILLED的轮廓,如下所示创建颜色反转的蒙版(...然后,我们使用OpenCV “ add()”函数将此反向蒙版添加到先前获得的黑色背景中,并获得相同的结果,但使用白色背景。 ? 到此为止,我们总结了几种方法,可以轻松地从图像中提取感兴趣区域。

    2.9K30

    使用OpenCV在Python中进行图像处理

    因此,单个图像将有三个这样的矩阵。 安装 注意:由于我们将通过Python使用OpenCV,因此隐含的要求是您的工作站上已经安装了Python(版本3)。...sudo apt-get install libopencv-dev python-opencv 要检查安装是否成功,请在Python Shell或命令提示符中运行以下命令: import cv2 您应该知道的一些基本知识...用于阈值的图像: import cv2cv2_imshow(threshold) 如您所见,在生成的图像中,已经建立了两个区域,即黑色区域(像素值0)和白色区域(像素值1)。...2:使用Canny Edge Detector进行边缘检测 到目前为止,我们一直在使用的玫瑰图像具有恒定的背景,即黑色,因此,对于该应用程序,我们将使用不同的图像以更好地显示算法的功能。...结论 在本文中,我们学习了如何在Windows,MacOS和Linux等不同平台上安装OpenCV(用于Python图像处理的最流行的库),以及如何验证安装是否成功。

    2.8K20

    Python中cv2 (OpenCV, opencv-python)库的安装、使用方法demo最新详细教程

    摘要 本文全面介绍了Python中OpenCV库(cv2)的安装和基础使用方法。文章详细讲解了如何通过Python进行图像处理的各种技术,包括图像读取、处理和显示等功能。...引言 大家好,我是猫头虎,今天我要分享的是如何在Python中使用cv2库来进行强大的图像处理。OpenCV是计算机视觉领域广泛使用的一个开源库,其Python接口cv2使图像处理变得既简单又高效。...安装OpenCV 环境要求 确保你的Python版本至少为3.6以上,推荐使用Python 3.8。...安装命令 在你的Python环境中安装OpenCV非常简单,使用pip即可: pip install opencv-python 验证安装 安装完成后,可以通过以下Python代码来验证cv2模块是否正确安装...小结 本文提供了一个关于如何在Python中安装并使用OpenCV库的快速入门指南,包括基本的图像处理功能。

    7.2K11

    图像处理基础

    现如今我们每时每刻都在与图像打交道,而图像处理也是我们绕不开的问题,本文将会简述图像处理的基础知识以及对常见的裁剪、画布、水印、平移、旋转、缩放等处理的实现。...2、灰度图像: 图像中的每个像素点在黑色和白色之间还有许多级的颜色深度(表现为灰色),通常我们使用 8 个 bit 来表示灰度级别,因此总共有 2 ^ 8 = 256 级灰度,所以可以使用 0 到 255...02 — 基本处理实现 对于图像的基本处理,本文示例使用的是 opencv-python 和 numpy 库。 示例: ? 裁剪:切割矩阵即可。...画布:先构建指定大小的画布背景,再填充图像即可。 水印:矩阵合并运算,使用 cv : addWeighted 方法。 平移:构建平移变换矩阵,使用 cv : warpAffine 方法。...旋转:构建旋转变换矩阵,使用 cv : warpAffine 方法。 缩放:使用 cv : resize 方法。 OpenCV 提供的 resize 缩放算法包括: ?

    1.4K20

    【技术分享会】Python Opencv图像处理基础(下)

    安装与基础使用 2. Opencv与pillow,base64的转换 3. 维度与通道 4. 颜色空间 5. 图像二值化 6. 图像运算与二值运算 7. 缩放,裁剪与旋转 8....使用蒙版 完整的notebook文档:https://github.com/IBBD/IBBD.github.io/blob/master/python/python-opencv-guidelines.ipynb...在opencv中处理成二值图像的方法有好几个,具体网上有很多现成的文章,如:https://blog.csdn.net/bugang4663/article/details/109589177 上图所示的方法...看起来这个效果不错了,这也是我在实现二值化时经常使用的方法,但是这个方法对于不均匀且背景比较复杂的图像效果比较差。 6....裁剪,缩放与旋转 ---- 裁剪在pillow中是有一个专门的方法的,不过在opencv中并不需要,使用numpy的语法就能解决: # 裁剪 img = cv2.imread(path) img_crop

    1.2K30

    基于Opencv的抠图

    image = cv2.imread("353.jpg") //opencv 中载入图片gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)。...step3:去除图像上的噪声。首先使用低通滤泼器平滑图像(9 x 9内核),这将有助于平滑图像中的高频噪声。低通滤波器的目标是降低图像的变化率。如将每个像素替换为该像素周围像素的均值。...这样就可以平滑并替代那些强度变化明显的区域。然后,对模糊图像二值化。梯度图像中不大于90的任何像素都设置为0(黑色)。 否则,像素设置为255(白色)。...我们把list排序,点最多的那个轮廓就是我们要找的昆虫的轮廓。 OpenCV中通过cv2.drawContours在图像上绘制轮廓。...第一个参数是指明在哪幅图像上绘制轮廓 第二个参数是轮廓本身,在Python中是一个list第三个参数指定绘制轮廓list中的哪条轮廓,如果是-1,则绘制其中的所有轮廓 第四个参数是轮廓线条的颜色第五个参数是轮廓线条的粗细

    5.6K20

    Python—OpenCV创建级联文件(Windows710环境)

    目录 搭建环境 准备数据集 训练级联文件 ---- 之前使用Python+OpenCV实现交通路标识别,具体实现步骤及心得如下: OpenCV训练属于自己的xml文件,需以下几个步骤: 1、首先下载OpenCV...通常正样本数据裁剪为20*20或40*40大小的像素即可(这里我使用40*40像素训练模型,9小时+可以训练完成),注意:像素过大训练速度相当慢,图片像素最好是正方形图片,长宽相等。...通常负样本数据集是识别物体的背景环境照片,图片越多越复杂抗干扰能力越强,负样本图片可以不用裁剪为固定大小,但是为了提升训练速度建议进行合理裁剪。 正样本图片如下: ? 负样本图片如下: ?...为了操作方便,我写了Python程序实现批量调整图片数据大小和图片命名,具体如下: # -*- coding:utf8 -*- import os from PIL import Image ''' 批量重命名文件夹中的图片文件...下面使用Python代码进行模型测试,效果如下: ?

    61930

    【Python3+OpenCV】实现图像处理—灰度变换篇

    OpenCV是一个C++库,目前流行的计算机视觉编程库,用于实时处理计算机视觉方面的问题,它涵盖了很多计算机视觉领域的模块。在Python中常使用OpenCV库实现图像处理。...本文将介绍如何在Python3中使用OpenCV实现对图像处理的灰度变换: 灰度化处理,二值化处理,伽马变换,对数变换,反向变换 ? 电脑环境准备 Python版本: Python3.7 ?...灰度图像中每个像素仅具有一种样本颜色,其灰度是位于黑色与白色之间的多级色彩深度,灰度值大的像素点比较亮,反之比较暗,像素值最大为255(表示白色),像素值最小为0(表示黑色)。 ?...No.1 灰度化处理 Opencv中图片的灰度化:将一个像素点的三个颜色变量相等,R=G=B,此时该值称为灰度值。...No.5 灰度图像的反色变换 Opencv中的反色变换:对原图像像素值的颜色进行反转,即黑色变为白色,白色变为黑色。

    6.4K10

    利用Python去除图片水印,太神奇了!

    大家好,我是小五 前一阵给大家分享了,如何给图片加水印。评论区就有小伙伴问,可不可使用Python去除图片水印的方法呢?...这个肯定有啊,不过由于图片水印的种类有很多,今天我们先讲最简单的一种。 即上图中的①类水印,这种水印存在白色背景上的文档里,水印是灰色,需要保留的文字是黑色。...OpenCV + Numpy 本方法需要使用的库:cv2、numpy。cv2是基于OpenCV的图像处理库,可以对图像进行腐蚀,膨胀等操作;Numpy这是一个强大的处理矩阵和维度运算的库。...色彩转换 回到本文一开始,我们想去除文档图片中的水印。 上图中我选取了三个点,这三个像素点分别对应背景白色、黑色字体以及灰色的水印。 我们现在要做的事,就是想办法把水印转换成白色背景。...不过通过线性回归改变整体图片颜色,也会影响原有的黑色文本,导致其颜色发生了微微变化。 那我们能不能简单粗暴一点!只改变水印的颜色呢? 也可以试试。

    3.2K50

    基于 opencv 的图像处理入门教程

    ,并不需要采用深度学习的网络模型,采用目前成熟的图像处理库即可实现,比如 OpenCV 和 PIL ,对图片进行简单的调整大小、裁剪、旋转,或者是对图片的模糊操作。...对彩色图片采用蒙版(mask) 提取图片的文字(OCR) 检测和修正歪曲的文字 颜色检测 去噪 检测图片的轮廓 移除图片的背景 原文地址: https://likegeeks.com/python-image-processing...调整图片对比度 在 Python 的 OpenCV 模块中并没有特定的实现调整图片对比度的函数,但官方文档给出实现调整图片亮度和对比度的公式,如下所示: new_img = a*original_img...检测和修正歪曲的文字 在本例中,使用的图片如下: ? 首先还是先读取图片,并转换为灰度图: ? 接着采用 bitwise_not 方法将背景和文字颜色进行交换,变成白字黑底: ?...颜色检测 在本次例子中实现检测图片中的绿色区域,使用的图片: ? 首先是读取图片后,转换到 HSV 空间: ?

    2.4K10
    领券