加入收藏 | 设为首页 | 会员中心 | 我要投稿 拼字网 - 核心网 (https://www.hexinwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 编程要点 > 语言 > 正文

一键迈向二次 元!用Python将自拍转换为卡通风格

发布时间:2022-12-06 12:35:57 所属栏目:语言 来源:
导读:  第一个步骤是载入图片。定义read_file函数,其中包含cv2_imshow,来载入我们在Google Colab中选择的图片。

  defread_file(filename):

   img = cv2.imread(filename)

  第一个步骤是载入图片。定义read_file函数,其中包含cv2_imshow,来载入我们在Google Colab中选择的图片。
 
  defread_file(filename):
 
                         img = cv2.imread(filename)
 
                         cv2_imshow(img)
 
                         return img
 
  调用创建的函数来载入图像:
 
  uploaded = files.upload()
 
  filename = next(iter(uploaded))
 
  img = read_file(filename)
 
  我选择将下面这张图变为卡通图片:
 
  2. 创建边缘蒙版
 
  常见的卡通效果强调图像中边缘的厚度。可以通过cv2.adaptiveThreshold() 函数来检测图像中的边缘。我们可以将egde_mask函数定义为:
 
  defedge_mask(img, line_size,blur_value):
 
                  gray = cv2.cvtColor(img, 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
 
  在该函数中,我们将图像转换成灰度图像,然后使用cv2.medianBlur来减少模糊的灰度图像的噪点。模糊值越大,意味着图像中出现的黑色噪点越少。接着,应用adaptiveThreshold函数,定义边缘的线条粗细。线条越粗,意味着图像中强调的边缘越厚。
 
  定义完函数后,调用函数就可以看到结果了。
 
  line_size = 7
 
  blur_value = 7edges = edge_mask(img, line_size, blur_value)
 
  cv2_imshow(edges)
 

(编辑:拼字网 - 核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!