這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)碛嘘P(guān)使用Opencv怎么實(shí)現(xiàn)一個(gè)圖片油畫特效,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

首先導(dǎo)入包:
import numpy as np import cv2
讀取原圖,得到原圖的寬高信息:
img=cv2.imread('ziliao/image00.JPG',1)
imInfo=img.shape
height=imInfo[0]
width=imInfo[1]完成彩色圖片向灰度圖片的轉(zhuǎn)化:
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) '''該函數(shù)用于顏色的轉(zhuǎn)換,第一個(gè)參數(shù)為待處理的原圖, 第二個(gè)參數(shù)表示轉(zhuǎn)換的顏色'''
本實(shí)例中將圖片分割為若干個(gè)8×8的小方塊,將0-255的灰度值分為8個(gè)等級,下面定義了一個(gè)數(shù)組array1來裝載這8個(gè)等級中的像素個(gè)數(shù),然后找出每個(gè)小方塊中包含最多像素的等級,如下:
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
dst=np.zeros((height,width,3),np.uint8)
for i in range(4,height-4):
for j in range(4,width-4):
array1 = np.zeros(8, np.uint8) #用于存儲(chǔ)每個(gè)灰度等級的像素個(gè)數(shù)
for m in range(-4, 4): #計(jì)算8*8小方塊中的array1的值
for n in range(-4,4):
p1 = int(gray[i + m, j + n] / 32) #除以32得到該點(diǎn)應(yīng)該位于第幾個(gè)灰度等級
array1[p1] = array1[p1] + 1
currentMax = array1[0]
l = 0
for k in range(0,8): #找到像素點(diǎn)最多的那個(gè)灰度等級
if currentMax<array1[k]:
currentMax = array1[k]
l = k
#以下方法是簡化處理了,也可以按前文所說的那樣求均值處理
for m in range(-4,4):
for n in range(-4,4):
if gray[i+m,j+n]>=(l*32) and gray[i+m,j+n]<=((l+1)*32):
(b,g,r) = img[i+m,j+n]
dst[i,j] = (b,g,r)
cv2.imshow('img',img)
cv2.imshow('dst',dst)
cv2.waitKey(0)左為原圖

import numpy as np
import cv2
img=cv2.imread('ziliao/image00.png',1)
imInfo=img.shape
height=imInfo[0]
width=imInfo[1]
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
dst=np.zeros((height,width,3),np.uint8)
for i in range(4,height-4):
for j in range(4,width-4):
array1 = np.zeros(8, np.uint8)
for m in range(-4, 4):
for n in range(-4,4):
p1 = int(gray[i + m, j + n] / 32)
array1[p1] = array1[p1] + 1
currentMax = array1[0]
l = 0
for k in range(0,8):
if currentMax<array1[k]:
currentMax = array1[k]
l = k
for m in range(-4,4):
for n in range(-4,4):
if gray[i+m,j+n]>=(l*32) and gray[i+m,j+n]<=((l+1)*32):
(b,g,r) = img[i+m,j+n]
dst[i,j] = (b,g,r)
cv2.imshow('img',img)
cv2.imshow('dst',dst)
cv2.waitKey(0)上述就是小編為大家分享的使用Opencv怎么實(shí)現(xiàn)一個(gè)圖片油畫特效了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
本文名稱:使用Opencv怎么實(shí)現(xiàn)一個(gè)圖片油畫特效-創(chuàng)新互聯(lián)
標(biāo)題網(wǎng)址:http://chinadenli.net/article10/hjggo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈、網(wǎng)站排名、建站公司、網(wǎng)站策劃、標(biāo)簽優(yōu)化、做網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容