0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何使用Python+opencv进行图像处理

jf_78858299 来源:GOGO数据 作者:是沐沐呀 2023-02-08 10:57 次阅读

图像是 Web 应用中除文字外最普遍的媒体格式。流行的 Web 静态图片有 JPEG、PNG、ICO、BMP 等。动态图片主要是 GIF 格式。

为了节省图片传输流量,大型互联网公司还会定制特殊格式的图片,WEBP 格式就是一个代表。

Python 除了数据分析,做图片处理也是非常好用的。

用 Python 做图片处理,最著名的库就是 PIL(Python Imaging Library)了,支持最新Python3,而且有许多新的特性,Pillow 也成为了 Python 图片处理必不可少的工具之一了。

不过我们今天要使用的作图库是OpenCV Python ,下一期我们再来研究PIL

这篇文章主要介绍了Python+OpenCV实现图像二值化,帮助大家更好的利用python处理图片,感兴趣的朋友可以了解下。

图片处理库准备

OpenCV Python 来处理图片,安装过程如下:

图片加载

我们先来打开一张图片测试,如下可以成功加载图片表示已经

成功安装OpenCV-Python

图片缩放

在保持图片细节不变的前提下,把图片放大或者缩小。

其中img 是图片对象,img.shape 表示图片的形状大小,分别是高、宽、通道数。

# 获取图片尺寸
img = cv2.imread("./pic1.jpg")
h, w, ch = img.shape
print(h, w, ch)
  
'''
1240 960 3
'''

我们的思路如下:

程序读入图片文件,用 cv2.resize 方法,把图片等比例缩放为一半的大小。

# 获取图片尺寸
img = cv2.imread("./pic1.jpg")
h, w, ch = img.shape
print('原图尺寸:', h, w, ch)

new_h = int(h / 2)
new_w = int(w / 2)
res = cv2.resize(img, (new_w, new_h), interpolation=cv2.INTER_LINEAR)
cv2.imwrite('./half_pic1.jpg', res)

# 获取图片尺寸
img = cv2.imread("./half_pic1.jpg")
h, w, ch = img.shape
print('缩半原图尺寸:', h, w, ch)
    
'''
原图尺寸:1240 960 3
缩半原图尺寸:620 480 3
'''

实际效果如下:

图片裁剪

把图片的局部形状截取出来,这里我们截取小姐姐图像,按照自己需求去掉前后左右多余边框。

img = cv2.imread("./pic1.jpg")
h, w, ch = img.shape
print(h, w, ch)
# (x0,y0) (x1,y1) 矩阵
x0, y0 = 200, 80
x1, y1 = 880, 960
# img 是一个按行扫描的矩阵
res = img[y0:y1, x0:x1]
print('截取后 H,W=', res.shape[:2])
cv2.imwrite('./pic.jpg', res)

'''
1240 960 3
截取后 H,W= (880, 680)
'''

实际效果如下:

图像组合

把两个或者多个图像进行堆叠、拼接。

准备一个原图 pic1.jpg,再准备一个水印图 img.png,目标是把水印贴在人像图的最右下方。

# 读取原始图片
    image = cv2.imread('./pic1.jpg')
    (h, w) = image.shape[:2]
    print("SOURCE", image.shape)

    # 读取水印
    imgsy = cv2.imread('./img.png')
    (h_sy, w_sy) = imgsy.shape[:2]
    print("SHUIYIN", imgsy.shape)

    # 定义原图片选区
    roi = image[h - h_sy:h, w - w_sy:w]

    # 原图片选区和水印区融合,让水印透明
    for y in range(h_sy):
        for x in range(w_sy):

            p = imgsy[y, x]
            if (p[0], p[1], p[2]) == (0, 0, 0):
                imgsy[y, x] = roi[y, x]

    cv2.imwrite('./shuiyin+roi.png', imgsy)

    # 选区范围设定为融合后的水印
    image[h - h_sy: h, w - w_sy: w] = imgsy

    cv2.imwrite('./pic_sy.jpg', image)
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Web
    Web
    +关注

    关注

    2

    文章

    1243

    浏览量

    68758
  • OpenCV
    +关注

    关注

    29

    文章

    614

    浏览量

    40915
  • python
    +关注

    关注

    53

    文章

    4703

    浏览量

    83703
收藏 人收藏

    评论

    相关推荐

    基于机器学习库opencv和平台Jupyter Notebook的车牌识别案例

    python+opencv实现车牌识别
    发表于 02-28 11:08

    【Toybrick RK3399Pro AI开发板试用体验】ACT Ⅵ:Linux下静态人脸识别 python+opencv

    程序,只要点击run即可,也不会报错。看了网上很多教程,python+opencv,在有深度训练源的情况下,7行代码就能实现,那我们现在就来试一试。首先,我们要找一个训练过的人脸的源,看了下大神的代码,我
    发表于 08-10 10:50

    关于OpenCV图像如何处理

    OpenCV-图像处理(25、直方图比较)
    发表于 04-27 15:14

    Vivado HLS实现OpenCV图像处理的设计流程与分析

    ,或者在更大的图像中对需要的特征或区域进行处理是,OpenCV似乎足以满足很多应用的要求,但对于高分辨率高帧率实时处理的场景下,
    发表于 07-08 08:30

    LabVIEW+Python+openCV

    的,动态链接库也需要配置,还需要知道各个参数含义和类型,这里提供另外一种方法,那就是PythonopenCV工具包,绝对开源和免费,LabVIEW可以利用Python节点调用Python
    发表于 12-07 20:59

    如何使用Python中的OpenCV模块检测颜色

    在这篇文章中,我们将看到如何使用 Python 中的 OpenCV 模块检测颜色,进入这个领域的第一步就是安装下面提到的模块。pip install opencv-pythonpip install
    发表于 02-09 16:31

    OpenCV图像处理编程研究

    OpenCV是一种用于数字图像处理和计算机视觉的函数库,由Intel微处理器研究实验室的视觉交互组开发,采用的开发语言是C++。本文通过学习掌握在O
    发表于 06-25 17:52 0次下载

    使用opencv进行图像处理

    使用opencv进行图像处理_于仕琪,感兴趣的可以看看。
    发表于 05-03 14:45 0次下载

    python图像处理opencv步骤是怎么样的

    越来越觉得python是一强大的工具,处理样本确实不错。最近因项目需要涉及到图片处理,所以开始用python调用opencv,再次觉得
    发表于 12-04 15:29 4282次阅读

    如何使用Python OpenCV进行面部标志检测

    今天我们将使用相同的 OpenCV 和 Raspberry Pi 进行人脸标志检测。来自 dlib 库的预训练面部标志检测器模块将用于检测面部关键面部结构的位置,python OpenCV
    发表于 08-12 16:32 1291次阅读
    如何使用<b class='flag-5'>Python</b> <b class='flag-5'>OpenCV</b><b class='flag-5'>进行</b>面部标志检测

    如何使用PythonOpenCV进行图像拼接

      图像拼接是计算机视觉中最成功的应用之一。如今,很难找到不包含此功能的手机或图像处理API。在本文中,我们将讨论如何使用PythonOpenCV
    的头像 发表于 10-26 15:59 1642次阅读

    使用opencvpython进行智能火灾检测

    电子发烧友网站提供《使用opencvpython进行智能火灾检测.zip》资料免费下载
    发表于 11-02 15:08 0次下载
    使用<b class='flag-5'>opencv</b>和<b class='flag-5'>python</b><b class='flag-5'>进行</b>智能火灾检测

    如何使用OpenCVPython图像中提取感兴趣区域

    今天我们将一起探究如何使用OpenCVPython图像中提取感兴趣区域(ROI)。 在之间的文章中,我们完成了图像边缘提取,例如从台球桌中提取桌边。使用了简单的
    的头像 发表于 02-07 14:42 1517次阅读

    分享5个用于图像处理Python

    图像处理是操纵图像以从中提取特征的现象。 在当今计算机视觉和深度学习的世界中,大量使用不同的图像处理算法对
    的头像 发表于 02-08 16:23 1130次阅读
    分享5个用于<b class='flag-5'>图像</b><b class='flag-5'>处理</b>的<b class='flag-5'>Python</b>库

    OpenCV库在图像处理和深度学习中的应用

    本文深入浅出地探讨了OpenCV库在图像处理和深度学习中的应用。从基本概念和操作,到复杂的图像变换和深度学习模型的使用,文章以详尽的代码和解释,带领大家步入
    的头像 发表于 08-18 11:33 607次阅读