昨天去妈妈的一个朋友家里做客,看到阿姨的10岁的孩子在上编程课,感觉挺有意思的,就听了听,感觉很有意思 题目 题目就是要把一张正常输入的照片转换成素描风。 步骤 白话步骤 将彩色图片转换为黑白图片 将图片颜色反转 将图片进行模糊处理 将模糊后的图像颜色反…
昨天去妈妈的一个朋友家里做客,看到阿姨的10岁的孩子在上编程课,感觉挺有意思的,就听了听,感觉很有意思
题目 题目就是要把一张正常输入的照片转换成素描风。
步骤 白话步骤
将彩色图片转换为黑白图片
将图片颜色反转
将图片进行模糊处理
将模糊后的图像颜色反转
进行颜色减淡操作
步骤
将原图色域空间转换为”L”
反转图片颜色
对图片应用高斯模糊
将高斯模糊后的图片再次反转
进行颜色减淡操作
代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 from PIL import Image, ImageOps, ImageFilteroriginal_image = Image.open ("E:\\images\\10.jpeg" ) gray_image = original_image.convert("L" ) inverted_image = ImageOps.invert(gray_image) blurred_image = inverted_image.filter (ImageFilter.GaussianBlur(8 )) gray_pixels = gray_image.load() blurred_pixels = blurred_image.load() width, height = gray_image.size sketch_image = Image.new("L" , (width, height)) sketch_pixels = sketch_image.load() for x in range (width): for y in range (height): base_pixel = gray_pixels[x, y] blend_pixel = blurred_pixels[x, y] if blend_pixel == 255 : sketch_pixels[x, y] = 255 else : sketch_pixels[x, y] = min (255 , int (base_pixel + base_pixel * blend_pixel / 255 )) sketch_image.show() sketch_image.save("E:\\images\\10_sketch.jpg" )
在铅笔画效果的颜色减淡算法中,当模糊图像的像素为255时,按照颜色减淡的公式,会导致除以零的情况(因为减淡公式中有一个 1 - Blend Color 的部分,当 Blend Color 为255时,这部分等于零)。为了避免这种除以零的错误,直接将结果像素值设为255,即最亮的白色,这样可以保证算法的稳定性和输出图像的正确性。
现在已经内卷到这种地步了吗,四年级的小朋友就已经开始写代码了,这也太可怕了吧😭😭😭