<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Python-OpenCV實現素描效果

          共 2076字,需瀏覽 5分鐘

           ·

          2021-06-21 21:56

          素描的實現原理

          要實現一種圖像處理的效果,首先我們需要掌握其實現的具體原理。

          相信經常使用PS的用戶肯定自己通過該軟件處理過素描的效果實現。那么,我們可以參考一樣PS實現素描效果的步驟:

          1. 去色:因為素描只有黑白兩種顏色,所以彩色圖像必須轉換為灰度圖像

          2. 復制去色圖層,并且反色。反色的公式為:Y(i,j)=255-X(i,j)

          3. 對反射圖像進行高斯模糊

          4. 模糊后的圖像疊加模式選擇顏色減淡效果

          而顏色減淡的公式如下:

          C=MIN(A+(A+B)/(255-B),255)

          C:混合結果

          A:去色后的像素點

          B:高斯模糊后的像素點

          感謝鼓勵與支持??????,往期文章都在最后梳理出來了(●'?'●)

          ????   ????

          反色的實現

          既然步驟中有反色的操作,那么在OpenCV中如何實現反色操作呢?
          其實,實現反色可以通過cv2.addWeighted()函數來實現。原理是:用一張圖片像素為0的圖像與灰度圖像進行疊加,而這個全0的像素圖像寬高必須與原圖的寬高一致,同時其gamma參數必須設置為255。
          具體代碼如下:

          def sketch_effect(img):    new_img = img.copy()    h, w, n = img.shape    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)    zero_img = np.zeros((h, w), dtype=np.uint8)    gray = cv2.addWeighted(gray, -1, zero_img, 0, 255, 0)

          反色運算換算成數學公式如下:
          dst=src1alpha+src2beta+gamma

          高斯濾波

          通過上面的代碼,我們實現了第一步轉換為灰度圖像,也實現了第二步進行反色操作。

          接下來,我們需要做的就是實現高通濾波。實現高通濾波的函數為:cv2.GaussianBlur()。

          下面,我們來對圖像進行第三個操作:對反色圖像進行高通濾波。代碼如下:

          def sketch_effect(img):    h, w, n = img.shape    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)    zero_img = np.zeros((h, w), dtype=np.uint8)    anti_color = cv2.addWeighted(gray, -1, zero_img, 0, 255, 0)    cv2.imshow("2", anti_color)    grayGB = cv2.GaussianBlur(anti_color, (15, 15), 0)    new_img = cv2.addWeighted(gray, 0.5, grayGB, 0.5, 0)    return new_img

          if __name__ == "__main__": img = cv2.imread("4.jpg") cv2.imshow("0", img) cv2.imshow("1", sketch_effect(img)) cv2.waitKey() cv2.destroyAllWindows()

          運行之后效果如下:

          左0為原圖,中間1為實現的素描效果,右2為反色圖像。

          「?? 感謝大家」

          如果你覺得這篇內容對你挺有有幫助的話:

          1. 點贊支持下吧,讓更多的人也能看到這篇內容(收藏不點贊,都是耍流氓 -_-)
          2. 歡迎在留言區(qū)與我分享你的想法,也歡迎你在留言區(qū)記錄你的思考過程。
          3. 覺得不錯的話,也可以閱讀近期梳理的文章(感謝鼓勵與支持??????):


          老鐵,三連支持一下,好嗎?↓↓↓




          歡迎大家加入到知識星球這個大家庭,這里一定有與你志同道合的小伙伴,在這里大家可以一起交流,一起學習,一同吹逼,一同玩耍。。。


          長按按鈕  “識別二維碼” 關注我
          更多精彩內容等著你哦

          點分享

          點點贊

          點在看

          瀏覽 111
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  中文字幕在线欧美 | 国产无码小视频 | 免费看成人747474九号视频在线观看 | 无码人妻一区二区三区9视频 | 最新亚洲无码AV |