首页 > 编程语言 >Python与OpenCV的魔法:批量将照片变身为精美素描图

Python与OpenCV的魔法:批量将照片变身为精美素描图

时间:2024-07-18 11:54:45浏览次数:11  
标签:Python 魔法 素描 OpenCV 图像 import col row

1.前言

在数字图像处理领域,图像转换和滤波是非常常见的操作。特别是将彩色照片转换为素描图,这种技术可以用于艺术创作、图像分析以及一些特殊的图像处理需求。本文将详细介绍如何使用Python和OpenCV库批量将任意图片转换为素描图。

2.简介

OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习软件库。它具有多种功能,包括图像处理、视频处理、目标检测等。在本文中,我们将使用OpenCV的功能,将彩色图像转换为素描图。素描图是一种将图像边缘突显出来的效果,看起来像是手绘的铅笔素描。

3.示例代码

以下是完整的Python代码,它可以批量将目录中的所有图片转换为素描图,并将结果保存到指定目录。

# 导入包
import cv2
import numpy as np
import os


# 定义方法
def dodgeNaive(image, mask):
    # 确定输入图像的形状
    width, height = image.shape[:2]

    # 准备与图像大小相同的输出参数
    blend = np.zeros((width, height), np.uint8)

    for col in range(width):
        for row in range(height):
            # 对每个像素执行此操作
            if mask[col, row] == 255:
                # 避免被零除
                blend[col, row] = 255
            else:
                # 将图像像素值移位8位
                # 除以掩模的倒数
                tmp &

标签:Python,魔法,素描,OpenCV,图像,import,col,row
From: https://blog.csdn.net/qq_29901385/article/details/140460016

相关文章

  • Python获取EXCEL实用行数
    #获取EXCEL实用行数defget_excel_rows(_excel_path):"""输入参数::param_excel_path:Excel全路径功能:获取Excel实际行数,即培训人员数量"""ifnot_excel_path.exists():print(f'{Fore.RED}文件不存在噢!!!\n{_excel_path}{Sty......
  • python笔记:赋值,浅拷贝和深拷贝
    在Python中,变量赋值、浅拷贝和深拷贝在处理对象时有不同的行为和应用场景。以下是它们的详细区别:1.赋值赋值操作只是创建了一个新的引用(别名)来指向同一个对象。也就是说,赋值操作并不创建新的对象,原始对象和赋值后的变量指向同一块内存区域。a=[1,2,3]b=a#b是a......
  • 如何让Python爬虫在遇到异常时继续运行
    概述在数据收集和数据挖掘中,爬虫技术是一项关键技能。然而,爬虫在运行过程中不可避免地会遇到各种异常情况,如网络超时、目标网站变化、数据格式不一致等。如果不加以处理,这些异常可能会导致爬虫程序中断,影响数据采集效率和完整性。本文将概述如何使用Python编写一个健壮的爬......
  • 【2024版】超详细Python+Pycharm安装保姆级教程,Python+Pycharm环境配置和使用指南,看完
    目录一、Python开发环境配置1.Python下载与安装二、PyCharm安装+运行测试+汉化1.PyCharm下载及安装2.解释器配置及项目测试3.PyCharm汉化本文将从Python解释器安装到Pycharm专业版安装和配置汉化等使用都进行了详细介绍,希望能够帮助到大家。Python解释器&Pycharm安......
  • 七、python函数基础
    文章目录学习目标一、函数的介绍二、函数的参数三、函数的返回值四、函数的注释五、函数调用函数六、函数高级6.1全局变量和局部变量6.2函数多个返回值6.3默认参数的使用6.4可变参数的使用6.5可变数据类型和不可变数据类型6.6函数的注意事项......
  • 五、python列表
    文章目录学习目标一、列表的基本使用二、列表的遍历2.1while循环遍历2.2for...in循环遍历三、列表的排序3.1交换两个变量的值3.2冒泡排序3.3列表的排序与反转方法四、列表的复制4.1可变数据类型与不可变数据类型4.2列表的复制五、列表......
  • 【Python】pyppeteer 简单使用2
    importsyssys.path.append("/home/user/.local/lib/python3.9/site-packages")#将包的路径添加到环境变量importasynciofrompyppeteerimportlaunchfrompyppeteer.errorsimportTimeoutErrorfrompyppeteer_stealthimportstealth#反检测模块,隐藏浏览器特征widt......
  • Java语言,MySQL数据库;基于Node+Vue的健康信息管理系统的设计与实现32355(免费领源码)计算
    Node.js健康信息管理系统的设计摘要在如今IT技术快速发展和Internet广泛应用的时代,电子和网络技术给人们生活带来了便利,同时也会直接或间接损害人们的健康。所以,本次的毕业设计创作的意义就是通过信息化的统一管理,给用户录入和查看健康信息提供了方便。本设计主要实现集人......
  • 量化交易策略:波动性指标Keltner通道(附python代码)
    Keltner通道是由著名技术分析师ChesterW.Keltner在上个世纪60年代发明的一种技术指标。它基于价格和某种市场波动性度量(通常为移动平均)之间的关系,用于预测价格趋势的变化。Keltner通道的上下轨分别表示了价格的上限和下限,反映了市场在一定周期内的波动范围。这使得Keltner......
  • 6个强大且流行的Python爬虫库,强烈推荐!
    Python中有非常多用于网络数据采集的库,功能非常强大,有的用于抓取网页,有的用于解析网页,这里介绍6个最常用的库。1.BeautifulSoupBeautifulSoup是最常用的Python网页解析库之一,可将HTML和XML文档解析为树形结构,能更方便地识别和提取数据。BeautifulSoup可以自动将输入......