訂閱
糾錯
加入自媒體

使用計算機視覺轉換水彩藝術中的圖像

介紹

在本文中,我們將研究能夠將圖像更改為水彩藝術形式的應用程序,我們將僅使用計算機視覺操作,即不涉及任何機器學習技術,僅涉及精細的圖像處理技術。

計算機視覺的現實應用

因此,在討論該方法并跳轉到代碼部分之前,讓我們首先討論一下該項目中使用的技術如何在實際場景中提供幫助。

1.將圖像卡通化:雖然在這個問題陳述中我們將研究水彩藝術,但最重要的是,如果我們能夠微調參數,我們只需要復習相關的概念就可以解決這個問題。

2.應用過濾器:我們可以使用相同的技術選擇各種過濾器,從人工智能市場的角度來看,這對 VR/AR 公司來說非常有用。

3.修改圖像:現在市場上開發(fā)了許多應用程序,這些應用程序給圖像帶來了多種多樣的效果,而這種濾波圖像處理無疑有助于這些應用程序。

處理此問題的方法

在本文的這一部分中,我們將列出開發(fā)應用程序的所有有效步驟/階段,該應用程序將使用計算機視覺操作將我們的原始圖像轉換為水彩效果藝術。

階段 1:輸入圖像并調整其大小:我們都知道我們需要一個圖像來執(zhí)行計算機視覺概念,但是調整它的大小背后有一個嚴格的邏輯,讓我們舉個例子來解釋這個原因,假設你將對一個圖像的唯一分布進行操作,我們將使用3×3內核對圖像進行操作,而在這種情況下,3×3內核將對圖像的唯一分布進行不同的操作,以消除這種復雜性,并確保在每種類型的圖像中,我們的結果應該是相同的,使用resize函數是一個很好的實踐,這樣我們的內核操作就可以有效地完成。

階段 2:清除雜質:在這個階段,我們將清除所有雜質,由于顏色變化,圖像中的雜質將滯后于操作?赡苁前唿c或不均勻的像素分布,可能導致應用過濾器的延遲。為了從圖像中去除這些雜質,我們有足夠的功能,我們將在本階段詳細討論它們。

階段 3:應用過濾:在這個階段,我們將對這個特定問題陳述中的圖像應用我們想要的過濾器。我們將應用這些過濾技術,將真實圖像轉換為水彩畫效果。為此,我們將執(zhí)行一些過濾技術,如高斯或雙邊過濾。

階段 4:調整藝術:在這個階段,我們將調整以提供更精確的過濾結果,假設在應用所需的過濾器后,我們獲得了模糊效果,以便去除我們將應用的圖像銳化,如果我們得到的結果顯示了一些松散的顏色,那么我們將通過管理圖像的顏色對比度來應用去霧操作,從而獲得結果的精細形式

導入庫

import cv2

import numpy as np

import matplotlib.pyplot as plt

階段 1:讀取圖像并調整大小

在這里,我們將首先讀取示例圖像并調整其大小,為了獲得更好的體驗,我們將使用兩個示例圖像來仔細檢查我們的結果。

image = cv2.imread('sample.jpg')

plt.figure(figsize = [10, 10])

plt.title("Image");plt.axis('off');plt.imshow(image[:,:,::-1]);plt.show()

輸出:

image = cv2.imread('sample2.jpg')

plt.figure(figsize = [10, 10])

plt.title("Image");plt.axis('off');plt.imshow(image[:,:,::-1]);plt.show()

輸出

代碼分解:

在這里,我們首先使用read函數讀取了圖像,請注意圖像類型是**.webp**。

然后我們使用 Matplotlib 庫中的figure函數來設置圖形大小。

最后,我們將使用show方法簡單地顯示圖像。

調整圖像大小

image_resized = cv2.resize(image, None, fx=0.5, fy=0.5)

關于resize函數

在這里,我們正在調整圖像的大小,以便特定大。ū热 3×3)的內核將給出相同的結果,而與圖像的分布無關。密切關注我們在 resize 函數中給出的參數。

image:這里我們傳遞我們想要調整大小的圖像。

fx:這將有助于將 x 軸減半(因為值為 0.5)。

fy:這將有助于將 y 軸減半(因為值為 0.5)。

None:此選項會將高度和寬度操作設置為無,因為我們只是更改圖像的軸。

階段 2:去除/清除雜質

現在是我們清除雜質部分,我們將使用中值模糊算法,但稍后我們將應用雙邊過濾。

image_cleared = cv2.medianBlur(image_resized, 3)

image_cleared = cv2.medianBlur(image_cleared, 3)

image_cleared = cv2.medianBlur(image_cleared, 3)

image_cleared = cv2.edgePreservingFilter(image_cleared, sigma_s=5)

代碼分解

1.在查看代碼時,一個問題是確定的,即為什么我對圖像進行了三次過濾?

· 答:我們想要過濾最多的圖像,因此,我們需要過濾相同的圖像多次(這里是三次),因此現在我們可以相對地獲得過濾次數更多的圖像。

2.除了中值模糊過濾外,我們還將研究邊緣保留過濾,它負責保持整個圖像的恒定顏色分布。

階段 3:雙邊圖像過濾

高斯濾波和雙邊圖像濾波之間的主要區(qū)別在于,在高斯模糊中,它只適用于圖像的模糊,即只考慮空間(不保留角點),但在雙邊濾波中,我們將使用圖像的高斯核,這將反過來聚焦于更強烈的圖像,并將保留角點。

image_filtered = cv2.bilateralFilter(image_cleared, 3, 10, 5)

for i in range(2):

  image_filtered = cv2.bilateralFilter(image_filtered, 3, 20, 10)

for i in range(3):

  image_filtered = cv2.bilateralFilter(image_filtered, 5, 30, 10)

代碼分解

在分解代碼之前,我們需要了解為什么我們使用循環(huán)進行雙邊過濾?

答:因為如果我們一次性增加參數值,那么我們將獲得卡通圖像而不是水彩藝術,這不是我們的目標,因此我們正在循環(huán)應用過濾并逐漸增加 sigma 空間的值。

參數 Bilateral filtering:

1.Source:需要過濾的源圖像。

2.D:D是每個像素的直徑值(這里是3/5)。

3.Sigma 顏色:Sigma 顏色的值越大,顏色混合得越深。

4.Sigma 空間:Sigma 空間的值越大,空間越寬的顏色就會開始混合。

階段 4:調整藝術 - 銳化圖像

所以,當我們使用雙邊濾波時,它用來模糊圖像。它保留了圖像的一角,并將其轉換為模糊形式,以便消除這種情況,獲得更清晰的輸出,我們用來銳化圖像。

gaussian_mask= cv2.GaussianBlur(image_filtered, (7,7), 2)

image_sharp = cv2.addWeighted(image_filtered, 1.5, gaussian_mask, -0.5, 0)

image_sharp = cv2.addWeighted(image_sharp, 1.4, gaussian_mask, -0.2, 10)

代碼分解:

1.首先在高斯模糊的幫助下,我們將減去圖像的一部分以獲得高斯蒙版。

2.然后使用上面的高斯蒙版,我們將使用weighted()函數銳化圖像,如果你注意到參數,我們正在嘗試不同的alpha 和 gamma值以獲得所需的結果。

使用計算機視覺顯示圖像

plt.figure(figsize=[30,30])

plt.subplot(131);plt.imshow(image_sharp[:,:,::-1]);plt.title("Final Image");plt.axis('off');

plt.subplot(132);plt.imshow(image_cleared[:,:,::-1]);plt.title("Clear Impurities");plt.axis('off');

plt.subplot(133);plt.imshow(image[:,:,::-1]);plt.title("Original");plt.axis('off');

輸出 1:

輸出 2:

代碼分解

正如我們之前在文章中已經討論過繪制圖像一樣,因此可以參考。這部分只有一點需要注意,這是一個子圖,將圖像的部分分為三個部分:

1.最終圖像

2.清除雜質

3.原圖

關于計算機視覺的結論

因此,從上面的輸出中,你可以看到圖像已轉換為水彩畫,你可以使用相同的過程和圖像處理技術轉換你想要的任何圖像,為了確保圖像質量足夠好,可以應用過濾器。

1.在這里,我們學到的第一件事是關于調整大小的功能,這非常重要。

2.然后我們開始了解不同的算法和概念,這些算法和概念有助于清除圖像中的雜質。

3.最后,我們了解了如何對處理進行最后的處理,即調整圖像,以提高結果的質量。

       原文標題 : 使用計算機視覺轉換水彩藝術中的圖像

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

發(fā)表評論

0條評論,0人參與

請輸入評論內容...

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

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

暫無評論

暫無評論

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

    粵公網安備 44030502002758號