日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

简易的素描图片转换流程与实现

發(fā)布時間:2023/12/13 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 简易的素描图片转换流程与实现 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

前言

之前經(jīng)常在網(wǎng)上看到用PS實現(xiàn)真實圖片到素描圖片的轉(zhuǎn)換,但是流程都大同小異,身為一只程序猿,必須來個一鍵轉(zhuǎn)化額。

國際慣例,參考博客:

Photoshop基礎(chǔ)教程:混合模式原理篇

顏色減淡的原理講解以及應(yīng)用

ps是如何通過最小值獲得描邊效果的?

圖紙轉(zhuǎn)線稿背后的計算機繪圖原理

步驟與實現(xiàn)

網(wǎng)上的流程大都分為四個步驟:

  • 去色:直接把彩圖轉(zhuǎn)成灰度圖或者轉(zhuǎn)成HSV/HSL后將飽和度S的值置零
  • 反向:將去色后的圖像顏色去反,直接用255減
  • 濾鏡:高斯模糊或者PS里面的最小值濾鏡
  • 顏色減淡:PS里面叫color dodge
  • 那么python實現(xiàn)也很方便:

    第一步:讀圖片,轉(zhuǎn)灰度圖

    img = cv2.imread('./images/zly1.jpg') # 去掉飽和度 img_gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

    第二步:反向,圖像就變成了底片色

    # 反相 img_inv = 255.0 - img_gray

    第三步:高斯模糊或者最小值濾鏡

    # 高斯模糊 # img_filt = cv2.GaussianBlur(img_inv, ksize=(3, 3),sigmaX=0, sigmaY=0) # 最小值濾鏡 img_filt = np.zeros_like(img_inv,dtype=np.uint8) radius = 3; for i in range(radius,img_inv.shape[0]-radius):for j in range(radius,img_inv.shape[1]-radius):img_filt[i,j] = np.min(img_inv[i-radius:i+radius,j-radius:j+radius])

    關(guān)于高斯模糊或者最小值濾鏡的原理,可以看上面的參考博客,實測發(fā)現(xiàn)最小值濾鏡效果或更好。

    第四步:顏色減淡

    # color dodge A = img_gray.astype('float32') B = img_filt.astype('float32') img_dodge = A+(A*B)/(255.0-B)

    原理在第一篇參考博客,其實就是一個公式,用于混合兩組圖像。

    可視化

    plt.figure(figsize=(8,8)) plt.subplot(121) plt.imshow(img/255.0) plt.axis('off') plt.subplot(122) plt.imshow(img_dodge/255.0,cmap='gray') plt.axis('off')

    我穎美如畫…

    有興趣可以自行去按照流程在PS中操作一遍,可以達(dá)到一樣的效果。

    后記

    記錄一下這個好玩的流程,代碼公布在微信公眾號簡介的github中,有興趣或者疑問歡迎關(guān)注公眾號,私信討論問題,持續(xù)更新骨骼動畫、機器學(xué)習(xí)、圖像相關(guān)有趣實用的知識點。

    總結(jié)

    以上是生活随笔為你收集整理的简易的素描图片转换流程与实现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。