最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

通過(guò)Python代碼實(shí)現(xiàn)照片秒變藝術(shù)素描畫(huà)效果

 更新時(shí)間:2025年11月07日 08:23:26   作者:燭陰  
這篇文章主要介紹了通過(guò)Python和OpenCV實(shí)現(xiàn)照片素描效果的“三步走”策略,并提供了示例代碼,步驟包括灰度化、反轉(zhuǎn)與模糊以及混合,最終生成類似鉛筆素描的藝術(shù)效果,需要的朋友可以參考下

準(zhǔn)備工作

安裝必要的第三方庫(kù)

pip install opencv-python
pip install numpy
pip install matplotlib # 用于在Jupyter Notebook或腳本中方便地顯示圖像

素描效果的“三步走”戰(zhàn)略

  1. 灰度化:素描是黑白的,所以第一步是去除色彩信息。
  2. 反轉(zhuǎn)與模糊:這是最關(guān)鍵的一步,我們通過(guò)反轉(zhuǎn)灰度圖并進(jìn)行高斯模糊,來(lái)創(chuàng)建出圖像的“底片”,這為后面生成線條打下基礎(chǔ)。
  3. 混合:將原始的灰度圖與模糊后的“底片”進(jìn)行混合,創(chuàng)造出類似鉛筆筆觸的明暗對(duì)比效果。

示例代碼

我們把上述步驟翻譯成 Python 和 OpenCV 代碼。

import cv2
import matplotlib.pyplot as plt

def image_to_sketch(image_path):
    """
    將指定路徑的圖像轉(zhuǎn)換為素描風(fēng)格。
    """
    # 步驟 1: 讀取圖像并轉(zhuǎn)換為灰度圖
    # cv2.imread() 用于讀取圖片
    # cv2.cvtColor() 用于轉(zhuǎn)換顏色空間,cv2.COLOR_BGR2GRAY 表示從BGR(OpenCV默認(rèn))轉(zhuǎn)為灰度
    img_bgr = cv2.imread(image_path)
    if img_bgr is None:
        print(f"錯(cuò)誤: 無(wú)法讀取圖片,請(qǐng)檢查路徑 '{image_path}' 是否正確。")
        return
      
    img_gray = cv2.cvtColor(img_bgr, cv2.COLOR_BGR2GRAY)

    # 步驟 2: 反轉(zhuǎn)灰度圖 (形成“底片”)
    # cv2.bitwise_not() 用于按位取反,白色變黑色,黑色變白色
    img_gray_inverted = cv2.bitwise_not(img_gray)

    # 步驟 3:對(duì)反轉(zhuǎn)后的圖像進(jìn)行高斯模糊
    # cv2.GaussianBlur() 用于模糊圖像,以平滑細(xì)節(jié)
    # (21, 21) 是高斯核的大小,必須是奇數(shù),值越大,模糊程度越高
    img_blur = cv2.GaussianBlur(img_gray_inverted, (21, 21), 0)

    # 步驟 4: 再次反轉(zhuǎn)模糊后的圖像
    img_blur_inverted = cv2.bitwise_not(img_blur)
  
    # 步驟 5: 關(guān)鍵一步!用顏色減淡(Color Dodge)方法混合灰度圖和模糊反轉(zhuǎn)圖
    # cv2.divide() 將兩個(gè)圖像相除,可以模擬出顏色減淡的效果
    # 256.0 是為了防止除以0的錯(cuò)誤,并確保結(jié)果是浮點(diǎn)數(shù)以便精確計(jì)算
    img_sketch = cv2.divide(img_gray, img_blur_inverted, scale=256.0)

    return img_bgr, img_sketch

# --- 主程序 ---
if __name__ == "__main__":
    # 替換成你自己的圖片路徑
    input_image_path = 'my_photo.jpg' 
  
    original_image, sketch_image = image_to_sketch(input_image_path)

    if original_image is not None and sketch_image is not None:
        # 使用 Matplotlib 顯示原始圖像和素描圖像
        plt.figure(figsize=(10, 5))

        # 顯示原始圖像 (注意OpenCV的BGR要轉(zhuǎn)為RGB)
        plt.subplot(1, 2, 1)
        plt.imshow(cv2.cvtColor(original_image, cv2.COLOR_BGR2RGB))
        plt.title('Original Image')
        plt.axis('off')

        # 顯示素描圖像
        plt.subplot(1, 2, 2)
        plt.imshow(sketch_image, cmap='gray')
        plt.title('Sketch')
        plt.axis('off')

        plt.show()

        # 如果想保存結(jié)果
        output_image_path = 'my_photo_sketch.jpg'
        cv2.imwrite(output_image_path, sketch_image)
        print(f"素描圖像已保存至: {output_image_path}")

效果

結(jié)語(yǔ)

到此這篇關(guān)于通過(guò)Python代碼實(shí)現(xiàn)照片秒變藝術(shù)素描畫(huà)效果的文章就介紹到這了,更多相關(guān)Python照片素描畫(huà)效果內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python繪制分形圖案探索無(wú)限細(xì)節(jié)和奇妙之美

    Python繪制分形圖案探索無(wú)限細(xì)節(jié)和奇妙之美

    本文將介紹如何使用Python繪制各種分形圖案,包括分形樹(shù)、科赫曲線、曼德博集合等。通過(guò)本文讀者可以了解分形圖案的基本概念和構(gòu)造方法,并學(xué)會(huì)使用Python繪制出各種精美的分形圖案。本文還提供了具體的代碼示例和實(shí)踐案例,幫助讀者更好地理解分形圖案的奇妙之美
    2023-04-04
  • Python異步編程之協(xié)程任務(wù)的調(diào)度操作實(shí)例分析

    Python異步編程之協(xié)程任務(wù)的調(diào)度操作實(shí)例分析

    這篇文章主要介紹了Python異步編程之協(xié)程任務(wù)的調(diào)度操作,結(jié)合實(shí)例形式分析了Python異步編程中協(xié)程任務(wù)的調(diào)度相關(guān)原理、實(shí)現(xiàn)方法與操作注意事項(xiàng),需要的朋友可以參考下
    2020-02-02
  • django authentication 登錄注冊(cè)的實(shí)現(xiàn)示例

    django authentication 登錄注冊(cè)的實(shí)現(xiàn)示例

    本文主要介紹了使用Django內(nèi)置的authentication功能實(shí)現(xiàn)用戶注冊(cè)和登錄功能,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-11-11
  • Python基礎(chǔ)教程之多線程編程詳解

    Python基礎(chǔ)教程之多線程編程詳解

    Python支持多線程編程和多進(jìn)程編程,在本教程中,我們將學(xué)習(xí)有關(guān)Python多線程編程的基礎(chǔ)知識(shí)、線程同步、線程池以及如何使用多進(jìn)程,需要的朋友可以參考下
    2023-06-06
  • Python中py文件引用另一個(gè)py文件變量的方法

    Python中py文件引用另一個(gè)py文件變量的方法

    下面小編就為大家分享一篇Python中py文件引用另一個(gè)py文件變量的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04
  • 解決Pytorch在測(cè)試與訓(xùn)練過(guò)程中的驗(yàn)證結(jié)果不一致問(wèn)題

    解決Pytorch在測(cè)試與訓(xùn)練過(guò)程中的驗(yàn)證結(jié)果不一致問(wèn)題

    這篇文章主要介紹了解決Pytorch在測(cè)試與訓(xùn)練過(guò)程中的驗(yàn)證結(jié)果不一致問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • python協(xié)程用法實(shí)例分析

    python協(xié)程用法實(shí)例分析

    這篇文章主要介紹了python協(xié)程用法,實(shí)例分析Python中協(xié)議的概念、功能及使用方法,需要的朋友可以參考下
    2015-06-06
  • python八種降維方法匯總

    python八種降維方法匯總

    在Python中,有多種降維方法可以使用,本文就來(lái)介紹八種降維方法以及使用場(chǎng)景,具有一定的參考價(jià)值,感興趣的可以一下,感興趣的可以了解一下
    2023-10-10
  • python游戲?qū)崙?zhàn)項(xiàng)目之童年經(jīng)典超級(jí)瑪麗

    python游戲?qū)崙?zhàn)項(xiàng)目之童年經(jīng)典超級(jí)瑪麗

    史上十大最經(jīng)典小霸王游戲中魂斗羅只能排在第二,那么第一是誰(shuí)?最經(jīng)典最風(fēng)靡的當(dāng)屬超級(jí)瑪麗,那個(gè)戴帽子的大胡子穿著背帶褲的馬里奧哪個(gè)不認(rèn)得,小編帶你用python實(shí)現(xiàn)超級(jí)瑪麗緬懷童年
    2021-09-09
  • python實(shí)現(xiàn)車輛跟隨滑??刂频膶?shí)例

    python實(shí)現(xiàn)車輛跟隨滑??刂频膶?shí)例

    這篇文章主要介紹了python實(shí)現(xiàn)車輛跟隨滑模控制,采用指數(shù)趨近律、等速趨近律、準(zhǔn)滑??刂频姆椒ㄍ瓿绍囕v跟隨問(wèn)題的仿真,運(yùn)行結(jié)果以圖片形式保存在同目錄下,需要的朋友可以參考下
    2022-05-05

最新評(píng)論

绥德县| 青冈县| 东丰县| 彝良县| 天水市| 武陟县| 红原县| 峨眉山市| 顺平县| 怀仁县| 五河县| 响水县| 镇赉县| 巩留县| 搜索| 龙里县| 廉江市| 泰宁县| 普洱| 昌平区| 红原县| 本溪市| 腾冲县| 建德市| 翁牛特旗| 云南省| 扎赉特旗| 防城港市| 武穴市| 丰台区| 洪泽县| 故城县| 平舆县| 通榆县| 上高县| 堆龙德庆县| 新泰市| 瓦房店市| 招远市| 白玉县| 临洮县|