脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|shell|

服务器之家 - 脚本之家 - Python - 3段Python图像处理的实用代码的分享

3段Python图像处理的实用代码的分享

2023-02-24 11:59Python编程学习圈 Python

这篇文章主要介绍了3段Python图像处理的实用代码的分享,计算机视觉方向的Python实用代码,用到多种库具有一定的参考价值,需要的小伙伴可以参考一下

前言

今天给大家分析3个计算机视觉方向的Python实用代码,主要用到的库有:

  • opencv-python
  • numpy
  • pillow

要是大家所配置的环境当中没有这几个模块的话,可先用pip命令下载安装:

pip install opencv-python numpy pillow

 

边缘检测

边缘检测的基本思想就是简化图像信息,使用边缘线代表图像所携带信息,而这次我们要用到的则是Canny边缘检测算子,在Opencv当中需要调用的是cv.canny()方法即可,代码如下:

import cv2 as cv
import matplotlib.pyplot as plt

img = cv.imread('导入图像的路径',0)
edges = cv.Canny(img,100,200)
plt.subplot(121)
plt.imshow(img, cmap='gray')
.........
plt.show()

output:

3段Python图像处理的实用代码的分享

 

将照片变成素描风格

我们最终要实现的目的在于将照片变成素描风格,大致的逻辑在于首先需要将图片变成灰色图像然后反转,在反转之后进行模糊化处理,代码如下:

import cv2
img = cv2.imread("导入照片的路径")

## 将照片灰度化处理
gray_image = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
## 将灰度化的照片反转处理
inverted_gray_image = 255-gray_image
## 将反转的照片模糊化处理
blurred_inverted_gray_image = cv2.GaussianBlur(inverted_gray_image, (19,19),0)
## 再一次的进行反转
inverted_blurred_image = 255-blurred_inverted_gray_image
### 颜色减淡混合处理
sketck = cv2.divide(gray_image, inverted_blurred_image,scale= 256.0)

cv2.imshow("Original Image",img)
cv2.imshow("Pencil Sketch", sketck)
cv2.waitKey(0)

output:

3段Python图像处理的实用代码的分享

 

判断形状

现在我们需要来判断图片当中图形的轮廓,而识别轮廓的算法在opencv模块当中是有内置的,代码如下:

import cv2
import numpy as np
from matplotlib import pyplot as plt

# 导入照片
img = cv2.imread('3.png')
# 将照片灰度化处理,当然要是您的照片已经是黑白的,就可以跳过这一步
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# setting threshold of the gray image
_, threshold = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)

# 识别轮廓的方法
contours, _ = cv2.findContours(
    threshold, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)

i = 0
for contour in contours:
    # cv2.approxPloyDP() function to approximate the shape
    approx = cv2.approxPolyDP(contour, 0.01 * cv2.arcLength(contour, True), True)
    # 找到图片的中心点
    M = cv2.moments(contour)
    if M['m00'] != 0.0:
        x = int(M['m10'] / M['m00'])
        y = int(M['m01'] / M['m00'])
    # 将轮廓的名字放在各个图形的中央
    if len(approx) == 3:
        cv2.putText(img, 'Triangle', (x, y),
                    cv2.FONT_HERSHEY_SIMPLEX, 0.6, (0, 0, 0), 2)
    elif len(approx) == 4:
        .......
    elif len(approx) == 5:
        ......
    elif len(approx) == 6:
        ......
    else:
        ......

# 将最后的图形呈现出来
cv2.imshow('shapes', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

output:

3段Python图像处理的实用代码的分享

是不是简单又实用?

到此这篇关于3段Python图像处理的实用代码的分享的文章就介绍到这了,更多相关Python图像处理内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://juejin.cn/post/7103344136819834916

延伸 · 阅读

精彩推荐
  • Pythonpython将txt等文件中的数据读为numpy数组的方法

    python将txt等文件中的数据读为numpy数组的方法

    今天小编就为大家分享一篇python将txt等文件中的数据读为numpy数组的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    liubo1875152021-05-06
  • Pythonpython利用多种方式来统计词频(单词个数)

    python利用多种方式来统计词频(单词个数)

    这篇文章主要介绍了python利用多种方式来统计词频(单词个数),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    Sinte-Beuve6032021-06-30
  • PythonPython中异常处理用法

    Python中异常处理用法

    这篇文章主要给大家分享的是 Python中异常处理用法,为了保证程序的健壮性与容错性,即在遇到错误时候程序不会崩溃,我们需要对异常进行处理,下面来...

    小小程序员ol9092022-03-09
  • Python基于Python实现原生的登录验证码详情

    基于Python实现原生的登录验证码详情

    在前面的文章中,我有分享到 vue+drf+第三方滑动验证码接入的实现,本文将要分享的是基于 python 实现原生的登录验证码,需要的朋友可以参考一下...

    山山仙人博客6912022-01-25
  • Pythonpython实现图片变亮或者变暗的方法

    python实现图片变亮或者变暗的方法

    这篇文章主要介绍了python实现图片变亮或者变暗的方法,涉及Python中Image模块操作图片的相关技巧,需要的朋友可以参考下...

    皮蛋12812020-07-10
  • Pythondjang常用查询SQL语句的使用代码

    djang常用查询SQL语句的使用代码

    这篇文章主要介绍了djang常用查询SQL语句的使用代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们...

    TAMAYURA5522021-05-28
  • Pythonpython爬虫之bs4数据解析

    python爬虫之bs4数据解析

    这篇文章主要介绍了python爬虫之bs4数据解析,文中有非常详细的代码示例,对正在学习python爬虫的小伙伴们有非常好的帮助,需要的朋友可以参考下...

    世界的隐喻9192021-10-20
  • Python初学者用Python搭建区块链

    初学者用Python搭建区块链

    最好的学习方法是通过模仿别人,从而学会再优化迭代。如果你是第一次编码区块链,可以跟我一起学习。...

    区块链研究实验室7842021-03-09