中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Opencv怎么實現圖像卡通化效果

發布時間:2022-01-07 15:38:43 來源:億速云 閱讀:156 作者:iii 欄目:開發技術

本文小編為大家詳細介紹“Opencv怎么實現圖像卡通化效果”,內容詳細,步驟清晰,細節處理妥當,希望這篇“Opencv怎么實現圖像卡通化效果”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

OpenCV的全稱是:Open Source Computer Vision Library。OpenCV是一個基于(開源)發行的跨平臺計算機視覺庫,可以運行在Linux、Windows和Mac OS操作系統上。它輕量級而且高效——由一系列 C 函數和少量 C++ 類構成,同時提供了Python、Ruby、MATLAB等語言的接口,實現了圖像處理和計算機視覺方面的很多通用算法。

鉛筆素描效果

將輸入圖像灰度化后及逆行高斯濾波,其中由于高斯濾波服從正態分布,核數越大、越模糊最后一步是將原始灰度圖像除以模糊后的灰度圖像。這樣可以得出兩個圖像中每個像素之間的變化率。模糊效果越強,每個像素的值相對于其原點的變化就越大,因此,它使我們的鉛筆素描更加清晰。其中第一幅圖核數為25,第二幅圖核數為75。(領會除法運用在此處的妙處)

Opencv怎么實現圖像卡通化效果

import cv2
img=cv2.imread('bird.jpg')
cv2.imshow('bird',img)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# Blur the image using Gaussian Blur
#高斯核服從正態分布,核數越大,越模糊
gray_blur = cv2.GaussianBlur(gray, (75, 75), 0)
# Convert the image into pencil sketch
cartoon = cv2.divide(gray, gray_blur, scale=250.0)
cv2.imshow('cartoon.jpg',cartoon)
cv2.waitKey()
cv2.destroyAllWindows()

國畫效果

國畫效果:銳化圖像,平滑顏色以及增強邊緣效果。
1.將原圖像進行中值濾波后進行自適應均值濾波后的邊緣圖像。
2.將原RGB圖像進行基于細節增強濾波器的銳化下圖1。(當把細節增強濾波器換為雙邊濾波,顯得更加平滑,下圖2)
3.將銳化后的圖像與邊緣圖像進行按位與得到最終效果圖。

Opencv怎么實現圖像卡通化效果

import cv2
img=cv2.imread('bird.jpg')
cv2.imshow('bird',img)
#convert the image into grayscale image
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
#Blur the grayscale image with median blur中值濾波
gray_blur = cv2.medianBlur(gray, 3)
#Apply adaptive thresholding to detect edges檢測圖像邊緣
edges = cv2.adaptiveThreshold(gray_blur, 255, cv2.ADAPTIVE_THRESH_MEAN_C,cv2.THRESH_BINARY, 9, 9)#自適應均值濾波
#Sharpen the image銳化圖像
color = cv2.detailEnhance(img, sigma_s=5, sigma_r=0.5)
cv2.imshow('color',color)
#細節增強函數 sigma_s控制著鄰域的大小,該鄰域的大小將被加權以替換圖像中的像素值。值越高,鄰域越大。這樣可以使圖像更平滑
#:如果要在平滑圖像時保留邊緣,這很重要。較小的值只會產生非常相似的顏色進行平均(即平滑),而相差很大的顏色將保持不變
#Merge the colors of same images using "edges" as a mask
cartoon = cv2.bitwise_and(color, color, mask=edges)
cv2.imshow('cartoon',cartoon)
cv2.waitKey()
cv2.destroyAllWindows()

抽象效果

拉普拉斯濾波器:通過對象內部的灰度級和圖像背景強度來突出對象的邊緣

Opencv怎么實現圖像卡通化效果

import cv2
img=cv2.imread('bird.jpg')

gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
cv2.imshow('img.jpg', img )

gray = cv2.medianBlur(gray, 3)
edges = cv2.Laplacian(gray, -1, ksize=5)
edges_inv = 255 - edges
dummy, cartoon = cv2.threshold(edges_inv, 0, 255, cv2.THRESH_BINARY)
cv2.imshow('cartoon.jpg', cartoon )
cv2.waitKey()
cv2.destroyAllWindows()

讀到這里,這篇“Opencv怎么實現圖像卡通化效果”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

岐山县| 许昌市| 山丹县| 漳州市| 翁源县| 灵川县| 诸城市| 岱山县| 阳曲县| 张掖市| 德化县| 黑水县| 信丰县| 周至县| 安新县| 罗江县| 家居| 昭觉县| 阳原县| 保康县| 华阴市| 基隆市| 南靖县| 临沂市| 沙洋县| 荆门市| 祁门县| 潜山县| 大城县| 靖州| 甘洛县| 当涂县| 娱乐| 芒康县| 龙州县| 平遥县| 那曲县| 盘山县| 威宁| 沭阳县| 蓬安县|