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

CodeBuddy 实现图片转素描手绘工具

本文所使用的 CodeBuddy 免费下载链接:腾讯云代码助手 CodeBuddy - AI 时代的智能编程伙伴

前言

最近在社交媒体上,各种素描风格的图片火得一塌糊涂,身边不少朋友都在分享自己的 “素描照”,看着那些黑白线条勾勒出的独特韵味,我心里直痒痒,特别想自己动手试试,把喜欢的彩色图片变成黑白素描手绘风格。在网上找了不少在线工具,要么功能有限,要么画质差强人意,我就琢磨着能不能在本地实现这个功能,毕竟自己动手,不仅能按需调整效果,还更有成就感。image.png
一番研究后,我发现使用 Python 的 opencv 模块就可以实现图片转素描的功能,可我虽然对 Python 有一定了解,但真要从零开始写代码,还是有点害怕了。就在这时,CodeBuddy 进入了我的视线。CodeBuddy 拥有强大的代码智能补全和实时语法检查功能,对于我这种偶尔会粗心犯错的人来说,简直太友好了,能及时发现并纠正代码中的错误,大大提高了开发效率。而且它还支持多种编程语言和框架,和 opencv 模块搭配使用毫无压力,还能提供很多相关的代码示例和优化建议,让我在开发过程中少走了很多弯路。
image.png

使用CodeBuddy完成图片的素描化

我们打开vscode进入到拓展中直接搜索CodeBuddy,点击安装这个插件就行了
image.png
我们点击左侧的插件图标就能进行使用了
还是老样子先生成README文件
对ai说:

我想实现图片转素描手绘工具,本工具主要使用python的opencv模块编写,将彩色图片转成黑白素描手绘图,你帮我生成下README文件

image.png
然后直接到Craft艾特这个文件进行直接开发,代码生成很快
image.png
代码生成好了之后我们直接运行程序,在终端输入命令python code.py
让我们选择一个图片并且文件的路径必须得是英文路径,不能包含中文
image.png
然后他就生成出了一张素描画,我们可以和原照片对比下,效果还是挺不错的,我这里的代码配置参数直接就是默认的,你们也可以进行设置的
35a6b50c3ad9fe58d8a52c2fca0a9e84.jpg

相关代码如下:

import cv2import numpy as npfrom tkinter import filedialog, Tkfrom os import getcwdfrom re import findalldef open_path():# 图片路径root = Tk()root.withdraw()file_path = (filedialog.askopenfilename(title='选择图片文件', filetypes=[('All Files', '*')]))return file_pathdef dodgeNaive(image, mask):# determine the shape of the input imagewidth, height = image.shape[:2]# prepare output argument with same size as imageblend = np.zeros((width, height), np.uint8)for col in range(width):for row in range(height):# do for every pixelif mask[col, row] == 255:# avoid division by zeroblend[col, row] = 255else:# shift image pixel value by 8 bits# divide by the inverse of the masktmp = (image[col, row] << 8) / (255 - mask)# print('tmp={}'.format(tmp.shape))# make sure resulting value stays within boundsif tmp.any() > 255:tmp = 255blend[col, row] = tmpreturn blenddef dodgeV2(image, mask):return cv2.divide(image, 255 - mask, scale=256)def burnV2(image, mask):return 255 - cv2.divide(255 - image, 255 - mask, scale=256)def rgb_to_sketch(src_image_name):print('转换中......')img_rgb = cv2.imread(src_image_name)img_gray = cv2.cvtColor(img_rgb, cv2.COLOR_BGR2GRAY)# 读取图片时直接转换操作# img_gray = cv2.imread('example.jpg', cv2.IMREAD_GRAYSCALE)img_gray_inv = 255 - img_grayimg_blur = cv2.GaussianBlur(img_gray_inv, ksize=(21, 21),sigmaX=0, sigmaY=0)img_blend = dodgeV2(img_gray, img_blur)# cv2.imshow('original', img_rgb)# cv2.imshow('gray', img_gray)# cv2.imshow('gray_inv', img_gray_inv)# cv2.imshow('gray_blur', img_blur)cv2.imwrite(dst_image_name, img_blend)save_path = getcwd() + "\\" + dst_image_name  # 保存路径print('转换完成!!!\n')print('保存路径:' + save_path)cv2.imshow(save_path, img_blend)cv2.waitKey(0)cv2.destroyAllWindows()if __name__ == '__main__':print('请选择图片(路径不要含中文):')src_image_name = open_path()  # 文件路径print(src_image_name+'\n')image_name = ''.join(findall(r'[^\\/:*?"<>|\r\n]+$', src_image_name))  # 获取文件名dst_image_name = 'Sketch_' + image_namergb_to_sketch(src_image_name)

感兴趣的可以去学习下哦

总结

总的来说,这次使用 CodeBuddy 实现图片转素描手绘工具的体验非常棒。它不仅帮我实现了一直想尝试的功能,还让我在开发过程中学习到了很多新知识和技巧。如果你也和我一样,对编程实现有趣的功能感兴趣,又担心自己搞不定复杂的代码,不妨试试 CodeBuddy,相信它会给你带来惊喜!

http://www.xdnf.cn/news/629263.html

相关文章:

  • springboot中各模块间实现bean之间互相调用(service以及自定义的bean)
  • 符合Python风格的对象(使用 __slots__ 类属性节省空间)
  • 搜索二叉树
  • 开盘啦 APP 抓包 逆向分析
  • 从有线到无线:PLC通讯“剪断“最后一根线!
  • MQTT-排它订阅
  • STM32F103 HAL多实例通用USART驱动 - 高效DMA+RingBuffer方案,量产级工程模板
  • python训练营第33天
  • Lesson 22 A glass envelope
  • HJ14 字符串排序【牛客网】
  • Spring AI 源码解析:Tool Calling链路调用流程及示例
  • 从法律视角看债务管理:湖北理元理律师事务所的实践探索
  • 【信息系统项目管理师】一文掌握高项常考题型-成本类计算
  • 巡礼中国西极·跨越昆仑天山 | 北斗卫星徽章护航昆仑科考
  • 神经算子项目实战:数据分析、可视化与实现全过程
  • 归一化 超全总结!!
  • leetcode hot100刷题日记——16.全排列
  • 探秘Transformer系列之(34)--- 量化基础
  • 开源轻量级语音合成和语音克隆模型:OuteTTS-1.0-0.6B
  • AWTK嵌入式图形框架开发备忘(二)
  • 【GESP真题解析】第 5 集 GESP 二级 2023 年 3 月编程题 2:百鸡问题
  • 【Python】【电网规划】基于经济与可靠性双目标的混合配电系统规划及可靠性评估
  • ShenNiusModularity项目源码学习(30:ShenNius.Admin.Mvc项目分析-15)
  • 可增添功能的鼠标右键优化工具
  • 【PINN】DeepXDE学习训练营(33)——pinn_forward-fractional_Poisson_1d.py
  • C++:共享指针unique_ptr的理解与应用
  • 每日定投40刀BTC(17)20250511 - 20250524
  • 什么是数据分析
  • Go基础语法与控制结构
  • ROS云课三分钟-破壁篇GCompris-一小部分支持Edu应用列表-2025