0


C#:圣诞节内卷,铅笔画制作

前言

一年一度的圣诞节又要到了,虽然不是中国传统节日,但当下很人却很喜欢过这个欢乐的节日,并乐于打造参与属于这个节日的仪式感。

说到仪式感,仪式感有很多,比如

结婚纪念日,给你的妻子买一束鲜花,是婚姻的仪式感;
孩子过生日,给TA做一顿喜欢的饭菜或者举办一个小Party,是亲情的仪式感;
朋友升职,给他送上一份真心的祝福和喜欢的礼物,是友情的仪式感。

还有给自己喜欢的人做一个圣诞小工具,这是属于程序员的仪式感

村上春树曾说,如果没有这些小确幸,人生只不过是干巴巴的沙漠而已。回想那些感到幸福的小瞬间,总会让我们觉得简单而美好。

然而内卷也即将开始。

1、程序员必须内卷,各路语言争相竞技。

python 拥有强大的第三方库,可以制作很多精美的效果,比如绘制颗圣诞
数,做个圣诞雪人,进行图片处理等。

javascript当然不甘落后,圣诞树,玫瑰花,圣诞贺卡,页面效果等也信手拈来。

网上也有大量的相关教程可以学习,各种效果都有。

偶然在一个文章中看到了铅笔画自作,本人也加入了内卷大军中来。不过采用的是C#制作,下面介绍下如何实现。

2、世上本无圣诞老人,所有的礼物都来自爱你的人

先上效果图(图为斋藤飞鸟,网图)
请添加图片描述
(1)实现步骤

采用opencvsharp第三方库处理

  • 安装第三方库

在工具,NuGet程序包管理器中,选择管理解决方案的NuGet程序包,搜索opencv,下载openCvSharp3-AnyCPU,或者该软件最新版本
在这里插入图片描述

  • 图像灰度处理
publicBitmapopen_cv_to_gray(String path){Mat src =newMat(path);Mat result = src.CvtColor(ColorConversionCodes.BGR2GRAY);return OpenCvSharp.Extensions.BitmapConverter.ToBitmap(result);}
  • 图像反色处理
publicBitmapopen_cv_to_grayscale(String path){Mat src =newMat(path, ImreadModes.Grayscale);Mat result =newMat();
    Cv2.BitwiseNot(src, result);return OpenCvSharp.Extensions.BitmapConverter.ToBitmap(result);}
  • 反色图像高斯模糊
publicBitmapopen_cv_blur(Bitmap bitmap){Mat src = OpenCvSharp.Extensions.BitmapConverter.ToMat(bitmap);using(Mat dst =newMat()){//注意:size 参数一定要是奇数 (均值模糊)  Y 轴模糊
          Cv2.Blur(src, dst,newOpenCvSharp.Size(21,21),newOpenCvSharp.Point(-1,-1));Bitmap map = OpenCvSharp.Extensions.BitmapConverter.ToBitmap(dst);return map;}}
  • 高斯模糊后再次反色
publicBitmapopen_cv_to_grayscale(Bitmap bitmap){Mat mat = OpenCvSharp.Extensions.BitmapConverter.ToMat(bitmap);Mat result =newMat();
    Cv2.BitwiseNot(mat, result);return OpenCvSharp.Extensions.BitmapConverter.ToBitmap(result);}
  • 最后图像计算

将灰度图和高斯模糊再次反色图进行除法运算

publicBitmapopen_cv_divide(Bitmap gray,Bitmap gblur){Mat mat_gray = OpenCvSharp.Extensions.BitmapConverter.ToMat(gray);Mat mat_gblur = OpenCvSharp.Extensions.BitmapConverter.ToMat(gblur);Mat outmat =newMat();
    Cv2.Divide(mat_gray, mat_gblur, outmat,256);//矩阵相除

    Cv2.WaitKey(0);return OpenCvSharp.Extensions.BitmapConverter.ToBitmap(outmat);}

流程如上,安照流程处理就可实现上述效果啦。

(2)下载地址

工具下载地址: https://download.csdn.net/download/slaron/68210720


本文转载自: https://blog.csdn.net/slaron/article/details/122061840
版权归原作者 胖胖的战士 所有, 如有侵权,请联系我们删除。

“C#:圣诞节内卷,铅笔画制作”的评论:

还没有评论