在網上找一個人物影像,想提取他的素描,怎么做

找到影像
然后運行代碼

得到結果
如果想知道更多處理方法,
比如哈哈鏡的原理和代碼
懷舊老照片的生成
油畫演算法的實作
漫畫風格等等

可以看我的b站視頻
研究僧小張
本期的線稿代碼如下:
#參考PS素描的實作步驟,先去色將彩色影像裝換成灰度圖,復制去色層進行反色,
# 對反色影像進行高斯模糊,模糊后的影像疊加模式選擇顏色減淡效果
import cv2
import numpy as np
def sketch_style(img): #自定義素描函式
height,width,n = img.shape #提取原圖的長寬和通道
gray0 = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) #灰度處理
img2 = np.zeros((height,width),dtype='uint8') #創建一張像素值都為0的影像,型別為unit8即像素點的范圍是0~255
#addWeighted各引數含義,1引數表示輸入圖,2表示第一張的透明度,3是第二張圖,4是第二張透明度,5是像素點和之后再加數值
gray1 = cv2.addWeighted(gray0, -1, img2, 0, 255, 0) #像素值為0的影像與灰度影像進行疊加
cv2.imshow("img0", gray1) #輸出影像
gray1 = cv2.GaussianBlur(gray1, (15, 15), 0) #高斯模糊
dst = cv2.addWeighted(gray0, 1, gray1, 1, 0) #濾波后的影像疊加
cv2.imshow("sketch_img", dst) #輸出影像
def main():
img = cv2.imread('2.jpg')
sketch_style(img)
cv2.imshow('img', img)
cv2.waitKey(0)
if __name__ == '__main__':
main()
當然我們在運行的時候很可能會遇到opencv報錯的問題
cv2.error: OpenCV(4.5.3) C:\Users\runneradmin\AppData\Local\Temp\pip-req-build-z4706ql7\opencv\modules\highgui\src\window.cpp:1274: error: (-2:Unspecified error) The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Cocoa support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script in function 'cvShowImage'
有可能是下載的版本問題,或沒安裝好
刪了重新下載即可
pip uninstall opencv-python
pip3 install opencv-contrib-python
當然報錯還有可能是路徑帶有中文或空格有時也會報錯,
還有的保存是函式的版本不同,老版本回傳的是三個引數,新版本卻只有兩個引數
比如
contours,heriachy = cv.findContours(binary,cv.RETR_EXTERNAL,cv.CHAIN_APPROX_SIMPLE)
那么本期博客就寫到這里,
記得點贊關注加收藏,多支持博主,才能有動力日更不斷!!!
有需要寫代碼的,可以私聊我,或加扣:334542894
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/294803.html
標籤:其他
