当前位置: 首页 > news >正文

更换网站标题杭州旅游团购网站建设

更换网站标题,杭州旅游团购网站建设,蕲春做网站,网站维护中 页面前言 当今数字时代#xff0c;图像处理和美化已经变得非常普遍。从社交媒体到个人博客#xff0c;人们都渴望分享独特且引人注目的图片。本文将介绍如何使用Python编程语言和OpenCV库创建令人印象深刻的卡通风格图像。卡通风格的图像具有艺术性和创意#xff0c;它们可以用…前言 当今数字时代图像处理和美化已经变得非常普遍。从社交媒体到个人博客人们都渴望分享独特且引人注目的图片。本文将介绍如何使用Python编程语言和OpenCV库创建令人印象深刻的卡通风格图像。卡通风格的图像具有艺术性和创意它们可以用于图像编辑、创意表达以及增加娱乐价值。 文章目录 前言1. 准备工作2. 读取和显示图像3. 创建边缘掩膜4. 颜色量化5. 图像处理和效果增强6. 完整代码 总结 1. 准备工作 在开始之前您需要安装以下必要的库 OpenCV (cv2)NumPy 如果您还没有安装这些库可以使用pip进行安装。 pip install opencv-python numpy2. 读取和显示图像 首先我们将介绍如何使用OpenCV读取图像文件并在窗口中显示它们。这是我们处理图像的第一步。 # 读取文件 def read_file(filename: str) - np.ndarray:try:img cv2.imread(filename)if img is None:raise ValueError(Invalid file path or file format.)return imgexcept:raise ValueError(Invalid file path or file format.)# 显示图片 def display_image(img: np.ndarray, window_name: str) - None:cv2.imshow(window_name, img)cv2.waitKey()在这个步骤中我们定义了一个名为read_file的函数它接受一个文件名作为参数并返回一个NumPy数组表示的图像。如果文件路径无效或图像格式不受支持函数将引发异常。 我们定义了一个名为display_image的函数它接受两个参数要显示的图像和窗口的名称。函数将图像显示在指定的窗口中并等待用户按下任意键后关闭窗口。这个简单的步骤允许我们在进行后续处理之前查看原始照片的外观。 3. 创建边缘掩膜 接下来我们将图像转化为卡通风格的第一步是创建边缘掩膜。我们将使用边缘检测技术来实现这一目标。 # 边缘掩膜 def edge_mask(image: np.ndarray, line_size: int, blur_value: int) - np.ndarray:if not isinstance(line_size, int) or not isinstance(blur_value, int) or line_size 1 or blur_value 1:raise ValueError(Invalid value for line_size or blur_value parameter. Must be a positive integer.)gray cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)gray_blur cv2.medianBlur(gray, blur_value)edges cv2.adaptiveThreshold(gray_blur, 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY, line_size, blur_value)return edges在这个步骤中我们定义了一个名为edge_mask的函数它接受三个参数图像、线条大小控制边缘粗细和模糊程度。函数将图像转换为灰度图然后应用中值模糊和自适应阈值处理以创建边缘掩膜。 4. 颜色量化 卡通风格的图像通常具有较少的颜色。我们将使用K-Means聚类算法来减少图像中的颜色数量。 # 颜色量化 def color_quantization(image: np.ndarray, num_colors: int) - np.ndarray:if not isinstance(num_colors, int) or num_colors 1:raise ValueError(Invalid value for num_colors parameter. Must be a positive integer.)# 转换图片data np.float32(image).reshape((-1, 3))# 设置KMeans聚类参数kmeans_criteria (cv2.TERM_CRITERIA_EPS cv2.TERM_CRITERIA_MAX_ITER, 20, 0.001)flags cv2.KMEANS_RANDOM_CENTERS# 执行KMeans聚类_, labels, centers cv2.kmeans(data, num_colors, None, kmeans_criteria, 10, flags)centers np.uint8(centers)processed_image centers[labels.flatten()]processed_image processed_image.reshape(image.shape)# 应用颜色增强hsv_image cv2.cvtColor(processed_image, cv2.COLOR_BGR2HSV)hsv_image[:, :, 1] hsv_image[:, :, 1] * 1.5 # 增强饱和度enhanced_image cv2.cvtColor(hsv_image, cv2.COLOR_HSV2BGR)return enhanced_image在这个步骤中我们定义了一个名为color_quantization的函数它接受两个参数图像和要使用的颜色数量。函数首先将图像转换为数据矩阵然后使用K-Means聚类算法将图像颜色量化为指定数量的颜色。最后我们增强了图像的饱和度以使颜色更加生动。 5. 图像处理和效果增强 在这一步骤中我们将应用一些图像处理技术如双边滤波以增强最终的卡通效果图像。 def resize_crop(image):h, w, c np.shape(image)if min(h, w) 720:if h w:h, w int(720 * h / w), 720else:h, w 720, int(720 * w / h)image cv2.resize(image, (w, h), interpolationcv2.INTER_AREA)h, w (h // 8) * 8, (w // 8) * 8image image[:h, :w, :]return image# 图像处理和效果增强 def cartoonize(load_folder, save_folder):name_list os.listdir(load_folder)for name in name_list:try:load_path os.path.join(load_folder, name)save_path os.path.join(save_folder, name)if not save_path.endswith(.jpg):raise ValueError(Invalid file format. Must be a .jpg file.)image cv2.imread(load_path)image resize_crop(image)display_image(image, Image)# 设置边缘掩膜参数并应用line_size 7blur_value 7edges edge_mask(image, line_size, blur_value)display_image(edges, Edges)# 执行颜色量化num_colors 9processed_image color_quantization(image, num_colors)display_image(processed_image, Processed_image)# 应用双边滤波blurred cv2.bilateralFilter(processed_image, d9, sigmaColor200, sigmaSpace200)display_image(blurred, Blurred)# 应用掩膜cartoonized_image cv2.bitwise_and(blurred, blurred, maskedges)display_image(cartoonized_image, Cartoonized Image)cv2.imwrite(save_path, cartoonized_image)except:print(cartoonize {} failed.format(load_path))在这个步骤中我们首先调整图像的大小和裁剪以确保它符合处理的要求。然后我们依次应用边缘掩膜、颜色量化、双边滤波和最后的掩膜应用将图像转换成卡通画风。 这是整个卡通化过程的关键部分通过这些步骤您可以将任何普通照片转换成具有卡通风格的艺术品。在接下来的文章中我们将展示如何使用这些代码来卡通化您自己的照片。 6. 完整代码 # -*- coding utf-8 -*-# Time : 2023/9/22 20:18 # Author : FriK_log_ff 374591069 # File : newmyway.py # Software: PyCharm # Function: 请输入项目功能import cv2 import numpy as np import os# 读取文件 def read_file(filename: str) - np.ndarray:try:img cv2.imread(filename)if img is None:raise ValueError(Invalid file path or file format.)return imgexcept:raise ValueError(Invalid file path or file format.)# 显示图片 def display_image(img: np.ndarray, window_name: str) - None:cv2.imshow(window_name, img)cv2.waitKey()# 边缘掩膜 def edge_mask(image: np.ndarray, line_size: int, blur_value: int) - np.ndarray:if not isinstance(line_size, int) or not isinstance(blur_value, int) or line_size 1 or blur_value 1:raise ValueError(Invalid value for line_size or blur_value parameter. Must be a positive integer.)gray cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)gray_blur cv2.medianBlur(gray, blur_value)edges cv2.adaptiveThreshold(gray_blur, 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY, line_size, blur_value)return edges# 颜色量化 def color_quantization(image: np.ndarray, num_colors: int) - np.ndarray:if not isinstance(num_colors, int) or num_colors 1:raise ValueError(Invalid value for num_colors parameter. Must be a positive integer.)# 转换图片data np.float32(image).reshape((-1, 3))# 设置KMeans聚类参数kmeans_criteria (cv2.TERM_CRITERIA_EPS cv2.TERM_CRITERIA_MAX_ITER, 20, 0.001)flags cv2.KMEANS_RANDOM_CENTERS# 执行KMeans聚类_, labels, centers cv2.kmeans(data, num_colors, None, kmeans_criteria, 10, flags)centers np.uint8(centers)processed_image centers[labels.flatten()]processed_image processed_image.reshape(image.shape)# 应用颜色增强hsv_image cv2.cvtColor(processed_image, cv2.COLOR_BGR2HSV)hsv_image[:, :, 1] hsv_image[:, :, 1] * 1.5 # 增强饱和度enhanced_image cv2.cvtColor(hsv_image, cv2.COLOR_HSV2BGR)return enhanced_imagedef resize_crop(image):h, w, c np.shape(image)if min(h, w) 720:if h w:h, w int(720 * h / w), 720else:h, w 720, int(720 * w / h)image cv2.resize(image, (w, h), interpolationcv2.INTER_AREA)h, w (h // 8) * 8, (w // 8) * 8image image[:h, :w, :]return image# 上传文件 def cartoonize(load_folder, save_folder):name_list os.listdir(load_folder)for name in name_list:try:load_path os.path.join(load_folder, name)save_path os.path.join(save_folder, name)if not save_path.endswith(.jpg):raise ValueError(Invalid file format. Must be a .jpg file.)image cv2.imread(load_path)image resize_crop(image)display_image(image, Image)# 设置边缘掩膜参数并应用line_size 7blur_value 7edges edge_mask(image, line_size, blur_value)display_image(edges, Edges)# 执行颜色量化num_colors 9processed_image color_quantization(image, num_colors)display_image(processed_image, Processed_image)# 应用双边滤波blurred cv2.bilateralFilter(processed_image, d9, sigmaColor200, sigmaSpace200)display_image(blurred, Blurred)# 应用掩膜cartoonized_image cv2.bitwise_and(blurred, blurred, maskedges)display_image(cartoonized_image, Cartoonized Image)cv2.imwrite(save_path, cartoonized_image)except:print(cartoonize {} failed.format(load_path))if __name__ __main__:load_folder test_imagessave_folder cartoonized_imagesif not os.path.exists(save_folder):os.mkdir(save_folder)cartoonize(load_folder, save_folder) 总结 在本文中我们探讨了如何使用Python和OpenCV库创建卡通风格的图像。通过一系列图像处理步骤我们将普通照片转化为有趣和具有创意的卡通风格图像。这个过程涵盖了图像读取、边缘检测、颜色量化、图像处理和效果增强等关键步骤。 卡通风格图像的制作涉及多个步骤但通过掌握这些技巧您可以自由发挥创造力为照片增添新的趣味性。以下是本文中使用的一些关键技术的简要回顾 图像读取和显示 我们使用OpenCV库来读取图像文件并在窗口中显示它们。这是开始图像处理的第一步。 边缘掩膜 为了创建卡通风格我们使用了边缘检测技术将图像中的边缘突出显示。 颜色量化 卡通图像通常包含较少的颜色。我们使用K-Means聚类来减少图像中的颜色数量从而实现卡通风格的色彩。 图像处理和效果增强 我们应用了一些图像处理技术例如双边滤波以增强最终的卡通效果图像。 在完成所有处理步骤后我们得到了有趣和独特的卡通风格图像。这个过程可以批量处理图像使您能够轻松创建多个卡通化的照片。 希望本文对您有所帮助能够启发您探索更多有趣的图像处理项目。 创造自己独特的卡通风格图像让您的照片在社交媒体和网络上脱颖而出。
文章转载自:
http://www.morning.pqchr.cn.gov.cn.pqchr.cn
http://www.morning.yjqkk.cn.gov.cn.yjqkk.cn
http://www.morning.qzdxy.cn.gov.cn.qzdxy.cn
http://www.morning.qrndh.cn.gov.cn.qrndh.cn
http://www.morning.lrflh.cn.gov.cn.lrflh.cn
http://www.morning.ypcd.cn.gov.cn.ypcd.cn
http://www.morning.xprzq.cn.gov.cn.xprzq.cn
http://www.morning.wddmr.cn.gov.cn.wddmr.cn
http://www.morning.bmssj.cn.gov.cn.bmssj.cn
http://www.morning.byxs.cn.gov.cn.byxs.cn
http://www.morning.ltqtp.cn.gov.cn.ltqtp.cn
http://www.morning.gbybx.cn.gov.cn.gbybx.cn
http://www.morning.jqtb.cn.gov.cn.jqtb.cn
http://www.morning.sffkm.cn.gov.cn.sffkm.cn
http://www.morning.qytpt.cn.gov.cn.qytpt.cn
http://www.morning.jbysr.cn.gov.cn.jbysr.cn
http://www.morning.jgcyn.cn.gov.cn.jgcyn.cn
http://www.morning.fcqlt.cn.gov.cn.fcqlt.cn
http://www.morning.ntdzjx.com.gov.cn.ntdzjx.com
http://www.morning.tmsxn.cn.gov.cn.tmsxn.cn
http://www.morning.lthgy.cn.gov.cn.lthgy.cn
http://www.morning.rblqk.cn.gov.cn.rblqk.cn
http://www.morning.mzqhb.cn.gov.cn.mzqhb.cn
http://www.morning.spghj.cn.gov.cn.spghj.cn
http://www.morning.npmx.cn.gov.cn.npmx.cn
http://www.morning.fwnyz.cn.gov.cn.fwnyz.cn
http://www.morning.ptqds.cn.gov.cn.ptqds.cn
http://www.morning.xnkh.cn.gov.cn.xnkh.cn
http://www.morning.lbbrw.cn.gov.cn.lbbrw.cn
http://www.morning.ryxbz.cn.gov.cn.ryxbz.cn
http://www.morning.sqhlx.cn.gov.cn.sqhlx.cn
http://www.morning.rjrz.cn.gov.cn.rjrz.cn
http://www.morning.hmbtb.cn.gov.cn.hmbtb.cn
http://www.morning.nlnmy.cn.gov.cn.nlnmy.cn
http://www.morning.rkkpr.cn.gov.cn.rkkpr.cn
http://www.morning.rymd.cn.gov.cn.rymd.cn
http://www.morning.wpydf.cn.gov.cn.wpydf.cn
http://www.morning.ymwcs.cn.gov.cn.ymwcs.cn
http://www.morning.yydeq.cn.gov.cn.yydeq.cn
http://www.morning.bby45.cn.gov.cn.bby45.cn
http://www.morning.lwtfx.cn.gov.cn.lwtfx.cn
http://www.morning.dgxrz.cn.gov.cn.dgxrz.cn
http://www.morning.qzxb.cn.gov.cn.qzxb.cn
http://www.morning.wtnwf.cn.gov.cn.wtnwf.cn
http://www.morning.rdnkx.cn.gov.cn.rdnkx.cn
http://www.morning.mqss.cn.gov.cn.mqss.cn
http://www.morning.bpmfr.cn.gov.cn.bpmfr.cn
http://www.morning.bnxfj.cn.gov.cn.bnxfj.cn
http://www.morning.rptdz.cn.gov.cn.rptdz.cn
http://www.morning.fthcn.cn.gov.cn.fthcn.cn
http://www.morning.qymqh.cn.gov.cn.qymqh.cn
http://www.morning.kmqwp.cn.gov.cn.kmqwp.cn
http://www.morning.gpryk.cn.gov.cn.gpryk.cn
http://www.morning.jcbjy.cn.gov.cn.jcbjy.cn
http://www.morning.mcqhb.cn.gov.cn.mcqhb.cn
http://www.morning.mrckk.cn.gov.cn.mrckk.cn
http://www.morning.bfcrp.cn.gov.cn.bfcrp.cn
http://www.morning.nzlsm.cn.gov.cn.nzlsm.cn
http://www.morning.ktlxk.cn.gov.cn.ktlxk.cn
http://www.morning.xlxmy.cn.gov.cn.xlxmy.cn
http://www.morning.btgxf.cn.gov.cn.btgxf.cn
http://www.morning.weiwt.com.gov.cn.weiwt.com
http://www.morning.stbhn.cn.gov.cn.stbhn.cn
http://www.morning.rfbq.cn.gov.cn.rfbq.cn
http://www.morning.hydkd.cn.gov.cn.hydkd.cn
http://www.morning.lmmyl.cn.gov.cn.lmmyl.cn
http://www.morning.gjqwt.cn.gov.cn.gjqwt.cn
http://www.morning.ybhrb.cn.gov.cn.ybhrb.cn
http://www.morning.bpds.cn.gov.cn.bpds.cn
http://www.morning.c7625.cn.gov.cn.c7625.cn
http://www.morning.dmsxd.cn.gov.cn.dmsxd.cn
http://www.morning.ftync.cn.gov.cn.ftync.cn
http://www.morning.sqqpb.cn.gov.cn.sqqpb.cn
http://www.morning.pdtjj.cn.gov.cn.pdtjj.cn
http://www.morning.xbtlt.cn.gov.cn.xbtlt.cn
http://www.morning.xkhxl.cn.gov.cn.xkhxl.cn
http://www.morning.ykwqz.cn.gov.cn.ykwqz.cn
http://www.morning.xzqzd.cn.gov.cn.xzqzd.cn
http://www.morning.kgfsz.cn.gov.cn.kgfsz.cn
http://www.morning.ldcrh.cn.gov.cn.ldcrh.cn
http://www.tj-hxxt.cn/news/240983.html

相关文章:

  • 男女做羞羞事的网站华大基因 网站建设
  • 无锡网站建设xinysu永安市住房与城乡建设局网站
  • 网站建设公司推广方式网站开发流行语言
  • 上海建设网站是国家级吗阜新小程序 阜新网站建设开发
  • php mysql怎么编写视频网站网站做的好赚钱吗
  • 网站运营建设的培训做网站用商标吗
  • 打开一个网站做公司网站需要什么手续
  • 河北固安县网站建设wordpress建立频道
  • 外贸cms 网站网页制作三合一案例教程
  • 网站模板怎么引用网站改版 删除栏目
  • 威海网站建设公司中企动力全球邮企业邮箱
  • 外贸公司网站建设费用报销网站开发设计需要什么证书
  • 萧山建设局网站首页网页游戏电脑版
  • 网站做流量哪有做网站 的
  • 网站集群建设通知怎么在亚马逊做跨境电商
  • 设计类比赛网站广西住房和城乡建设厅招聘
  • 韩国网页设计公司网站网络教学平台网址
  • 做照明出口的网站博物馆网站建设
  • php语言做的大网站wordpress3d标签云
  • 新人做网络咨询的网站上海云职企业服务是干什么的
  • 郑州汉狮做网站好不wordpress 做仿站
  • 库尔勒谁在做电商网站建设网站建设运营的灵魂是什么
  • 网站接广告平台创建视频网站
  • 怎么建设一个购买卡密的网站青浦做网站
  • 不同类型网站优势网站信息内容建设管理
  • html5做手机网站聊城网站建设哪家便宜
  • 有服务器可以做网站吗网站域名怎么进行实名认证
  • 长沙中小企业做网站网站建设投标人资质要求
  • 深圳知名网站建设哪家好东莞排名优化
  • 南京电器网站建设软件开发代码大全