国产无码免费,人妻口爆,国产V在线,99中文精品7,国产成人无码AA精品一,制度丝袜诱惑av,久久99免费麻辣视频,蜜臀久久99精品久久久久久酒店
        訂閱
        糾錯
        加入自媒體

        一文學會使用Opencv創建類似Instagram的濾鏡

        2021-09-24 13:35
        磐創AI
        關注

        什么是圖像濾鏡?

        圖像濾鏡是一種方法或過程,通過它可以修改圖像的顏色、陰影、色調、飽和度、紋理和其他特征。濾鏡用于根據商業、藝術或審美需要在視覺上修改圖像。

        如今,圖像濾鏡在社交媒體中非常普遍。Instagram 有各種各樣的濾鏡,Facebook 也是如此。Picsart 等編輯應用程序也提供了許多濾鏡。濾鏡可以為圖像提供新的視覺效果并使其看起來不同。人們使用濾鏡為他們的照片提供他們想要的效果。

        這里OpenCV有什么用?

        OpenCV 是一個免費使用的 Python 庫,可用于計算機視覺任務。它具有許多功能和方法,可用于執行各種任務。我將應用一些圖像轉換方法來獲取濾鏡并創建所需的效果。

        讓我們繼續進行所需的導入。

        import cv2
        import numpy as np
        import scipy

        我們將主要需要 NumPy 和 OpenCV,稍后將需要 SciPy。

        現在讓我們閱讀圖像文件。

        這是我們將要使用的圖像文件。

        #Read the image
        image = cv2.imread('shop.jpg')

        現在,我們可以繼續實現濾鏡。

        灰度濾鏡

        我們從實現最基本和最廣泛使用的濾鏡開始。

        灰度濾鏡用于為圖像提供黑白效果。基本上去除了圖像中的彩色成分。我們將使用 cv2.cvtColor()將圖像轉換為灰度。

        #greyscale filter
        def greyscale(img):
           greyscale = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
           return greyscale

        現在,將該函數應用于我們的圖像。

        #making the greyscale image
        a1 = greyscale(image)

        現在,我們將圖像保存為文件。

        filename = 'greyscale.jpg'
        # Using cv2.imwrite() method
        # Saving the image
        cv2.imwrite(filename, a1)

        輸出:

        因此,我們可以看到圖像已成功轉換為灰度。接下來,讓我們嘗試另一個。

        亮度調節

        通常,我們看到濾鏡使圖像更亮,而其他濾鏡會降低亮度。這些是亮度調整濾鏡的結果。為此,我們將使用 cv2.convertScaleAbs()。可以更改 Beta 值以獲得適當的結果。

        # brightness adjustment
        def bright(img, beta_value ):
           img_bright = cv2.convertScaleAbs(img, beta=beta_value)
           return img_bright

        函數已定義,現在 beta 值將給出適當的結果。正值表示圖像較亮,負值表示圖像較暗。

        #making the  more bright image
        #positive beta value
        a2 = bright(image, 60)

        現在,我們保存圖像。

        filename = 'more_bright.jpg'
        # Using cv2.imwrite() method
        # Saving the image
        cv2.imwrite(filename, a2)

        輸出:

        正如我們所看到的,圖像現在更亮了。現在,讓我們制作一個更暗的圖像。

        #making the  less bright image
        #negative beta value
        a3 = bright(image, -60)

        使用負Beta 值。現在,讓我們保存圖像。

        filename = 'less_bright.jpg'
        # Using cv2.imwrite() method
        # Saving the image
        cv2.imwrite(filename, a3)

        輸出:

        我們可以看到圖像現在不那么亮了。

        銳利效果

        銳化效果也被大量使用。我們將使用OpenCV 中的 filter2D方法進行適當的編輯。

        銳化效果的內核將是:[[-1, -1, -1], [-1, 9.5, -1], [-1, -1, -1]]

        讓我們繼續編碼:

        #sharp effect
        def sharpen(img):
           kernel = np.array([[-1, -1, -1], [-1, 9.5, -1], [-1, -1, -1]])
           img_sharpen = cv2.filter2D(img, -1, kernel)
           return img_sharpen

        現在,讓我們保存圖像。

        #making the sharp image
        a4 = sharpen(image)
        filename = 'sharpen.jpg'
        # Using cv2.imwrite() method
        # Saving the image
        cv2.imwrite(filename, a4)

        輸出:

        正如我們所看到的,圖像現在更清晰了。

        棕褐色濾鏡

        棕褐色是圖像編輯中最常用的濾鏡之一。棕褐色為照片增添了溫暖的棕色效果。復古、平靜和懷舊的效果被添加到圖像中。

        讓我們在 Python 中實現。

        為此,我們將使用 cv2.transform() 函數。繼續代碼。

        #sepia effect
        def sepia(img):
           img_sepia = np.array(img, dtype=np.float64) # converting to float to prevent loss
           img_sepia = cv2.transform(img_sepia, np.matrix([[0.272, 0.534, 0.131],
                                           [0.349, 0.686, 0.168],
                                           [0.393, 0.769, 0.189]])) # multipying image with special sepia matrix
           img_sepia[np.where(img_sepia > 255)] = 255 # normalizing values greater than 255 to 255
           img_sepia = np.array(img_sepia, dtype=np.uint8)
           return img_sepia

        讓我們實現該功能并保存圖像。

        #making the sepia image
        a5 = sepia(image)
        filename = 'sepia.jpg'
        # Using cv2.imwrite() method
        # Saving the image
        cv2.imwrite(filename, a5)

        輸出:

        效果看起來很棒。濾鏡實現完美。

        鉛筆素描效果:灰度

        讓我們實現一個灰度鉛筆素描效果。事實上,它很容易實現,因為有一個內置函數來實現它。

        #grey pencil sketch effect
        def pencil_sketch_grey(img):
           #inbuilt function to create sketch effect in colour and greyscale
           sk_gray, sk_color = cv2.pencilSketch(img, sigma_s=60, sigma_r=0.07, shade_factor=0.1)
           return  sk_gray

        現在,我們應用該函數并保存圖像。

        #making the grey pencil sketch
        a6 = pencil_sketch_grey(image)

        filename = 'pencil_grey.jpg'
        # Using cv2.imwrite() method
        # Saving the image
        cv2.imwrite(filename, a6)

        輸出:

        確實,圖像看起來像一個粗略的鉛筆素描。現在,是時候實現彩色版本了。

        鉛筆素描效果:彩色版本

        現在,我們實現鉛筆素描效果的彩色版本。

        #colour pencil sketch effect
        def pencil_sketch_col(img):
           #inbuilt function to create sketch effect in colour and greyscale
           sk_gray, sk_color = cv2.pencilSketch(img, sigma_s=60, sigma_r=0.07, shade_factor=0.1)
           return  sk_color

        我們應用該函數并保存圖像。

        #making the colour pencil sketch
        a7 = pencil_sketch_col(image)
        filename = 'pencil_col.jpg'
        # Using cv2.imwrite() method
        # Saving the image
        cv2.imwrite(filename, a7)

        輸出:

        效果相當有趣,總體而言,實現了鉛筆素描效果。

        HDR效果:

        HDR 效果被大量使用,因為它增加了圖像的細節層次。我將使用 **cv2.detailEnhance()**來實現這一點。

        #HDR effect
        def HDR(img):
           hdr = cv2.detailEnhance(img, sigma_s=12, sigma_r=0.15)
           return  hdr

        現在,我們應用該函數。

        #making the hdr img
        a8 = HDR(image)

        現在,我們保存圖像。

        filename = 'HDR.jpg'
        # Using cv2.imwrite() method
        # Saving the image
        cv2.imwrite(filename, a8)

        輸出:

        反轉濾鏡

        反轉濾鏡實際上很容易實現。每個人都曾在某些時候使用過這種濾鏡,讓他們的頭發變白。

        所有,我們要做的基本上就是反轉像素值。這可以通過將像素值減去 255 來完成。在 Python 中,我們可以為此使用 cv2.bitwise_not()函數。

        # invert filter
        def invert(img):
           inv = cv2.bitwise_not(img)
           return inv

        現在,讓我們應用該功能并保存圖像。

        #making the invert img
        a9 = invert(image)
        filename = 'invert.jpg'
        # Using cv2.imwrite() method
        # Saving the image
        cv2.imwrite(filename, a9)

        輸出:

        好像是異世界的東西吧?好吧,反轉濾鏡確實很有趣。

        現在我們將嘗試夏季和冬季效果濾鏡。

        為此,我們需要一個查找表。但是從頭開始創建查找表是一個很大的過程。我們可以使用 SciPy 函數來實現這一點。

        #defining a function
        from scipy.interpolate import UnivariateSpline
        def LookupTable(x, y):
         spline = UnivariateSpline(x, y)
         return spline(range(256))

        現在,函數已定義,讓我們繼續。

        夏季效果濾鏡

        讓我們實現一個夏季效果濾鏡,它基本上增加了圖像的溫暖度。為了實現這一點,我們將增加紅色通道中的值并減少藍色通道中的值。

        #summer effect
        def Summer(img):
           increaseLookupTable = LookupTable([0, 64, 128, 256], [0, 80, 160, 256])
           decreaseLookupTable = LookupTable([0, 64, 128, 256], [0, 50, 100, 256])
           blue_channel, green_channel,red_channel  = cv2.split(img)
           red_channel = cv2.LUT(red_channel, increaseLookupTable).astype(np.uint8)
           blue_channel = cv2.LUT(blue_channel, decreaseLookupTable).astype(np.uint8)
           sum= cv2.merge((blue_channel, green_channel, red_channel ))
           return sum

        現在,保存圖像。

        #making the summer img
        a11 = Summer(image)
        filename = 'Summer.jpg'
        # Using cv2.imwrite() method
        # Saving the image
        cv2.imwrite(filename, a11)

        輸出:

        實現了夏季效果濾鏡。

        現在,我們實現冬季效果濾鏡。

        冬季效果濾鏡:

        在冬季效果濾鏡中,將進行相反的操作。圖像的溫暖度會降低。紅色通道中的值將減少,藍色通道中的值將增加。

        #winter effect
        def Winter(img):
           increaseLookupTable = LookupTable([0, 64, 128, 256], [0, 80, 160, 256])
           decreaseLookupTable = LookupTable([0, 64, 128, 256], [0, 50, 100, 256])
           blue_channel, green_channel,red_channel = cv2.split(img)
           red_channel = cv2.LUT(red_channel, decreaseLookupTable).astype(np.uint8)
           blue_channel = cv2.LUT(blue_channel, increaseLookupTable).astype(np.uint8)
           win= cv2.merge((blue_channel, green_channel, red_channel))
           return win

        代碼已實現。所以,現在我們保存圖像。

        #making the winter img
        a10 = Winter(image)
        filename = 'Winter.jpg'
        # Using cv2.imwrite() method
        # Saving the image
        cv2.imwrite(filename, a10)

        輸出:

        效果實現了。圖像暖度降低并產生寒冷效果。

        聲明: 本文由入駐維科號的作者撰寫,觀點僅代表作者本人,不代表OFweek立場。如有侵權或其他問題,請聯系舉報。

        發表評論

        0條評論,0人參與

        請輸入評論內容...

        請輸入評論/評論長度6~500個字

        您提交的評論過于頻繁,請輸入驗證碼繼續

        暫無評論

        暫無評論

          掃碼關注公眾號
          OFweek人工智能網
          獲取更多精彩內容
          文章糾錯
          x
          *文字標題:
          *糾錯內容:
          聯系郵箱:
          *驗 證 碼:

          粵公網安備 44030502002758號

          主站蜘蛛池模板: 国产三级va| 成人亚洲精品一区二区三区嫩花| 中文乱伦字幕| 欧美freesex潮喷| 博湖县| av无码免费在线观看| 日日插插| 亚洲精品xxx| 免费国产va| 你懂的国产在线| 日韩激情一区二区| 狼人干?五月天| 女生洗鸡鸡喷尿的视频无马赛克?舒坦直叫的骚货视频?亚洲着九九九视频影院 | 国内精品熟女亚洲精品熟女| 海门市| 韩日一级| 国产熟女在线| 狼友福利在线观看| 南宫市| 少妇50p| 亚卅精品| 熟女综合网| 景德镇市| 晋宁县| 亚洲成人网站在线| 亚卅精品| 天堂中文字幕| 国产亚洲精品??码| 91视频www| 国产91四大| 亚洲无码mv| 精品综合视频精品| 成人av天堂| 黑人精品| 红桥区| 翁源县| 亚洲欲妇| 日本久久综合| 18岁以下禁止观看的网站| 久久精品亚洲| 中文字幕少妇人妻|