python使用opencv實現(xiàn)馬賽克效果示例
本文實例講述了python使用opencv實現(xiàn)馬賽克效果。分享給大家供大家參考,具體如下:
最近要實現(xiàn)opencv視頻打馬賽克,在網(wǎng)上找了一下基本是C++的實現(xiàn),好在原理一樣,下面給出python實現(xiàn)。
原理和注意點,我都寫在注釋里了
import cv2
##馬賽克
def do_mosaic(frame, x, y, w, h, neighbor=9):
"""
馬賽克的實現(xiàn)原理是把圖像上某個像素點一定范圍鄰域內(nèi)的所有點用鄰域內(nèi)左上像素點的顏色代替,這樣可以模糊細節(jié),但是可以保留大體的輪廓。
:param frame: opencv frame
:param int x : 馬賽克左頂點
:param int y: 馬賽克右頂點
:param int w: 馬賽克寬
:param int h: 馬賽克高
:param int neighbor: 馬賽克每一塊的寬
"""
fh, fw = frame.shape[0], frame.shape[1]
if (y + h > fh) or (x + w > fw):
return
for i in range(0, h - neighbor, neighbor): # 關(guān)鍵點0 減去neightbour 防止溢出
for j in range(0, w - neighbor, neighbor):
rect = [j + x, i + y, neighbor, neighbor]
color = frame[i + y][j + x].tolist() # 關(guān)鍵點1 tolist
left_up = (rect[0], rect[1])
right_down = (rect[0] + neighbor - 1, rect[1] + neighbor - 1) # 關(guān)鍵點2 減去一個像素
cv2.rectangle(frame, left_up, right_down, color, -1)
im = cv2.imread('test.jpg', 1)
do_mosaic(im, 219, 61, 460 - 219, 412 - 61)
while 1:
k = cv2.waitKey(10)
if k == 27:
break
cv2.imshow('mosaic', im)
原圖為:

效果如下:

圖片來自網(wǎng)上,如有侵權(quán),聯(lián)系刪除。
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python圖片操作技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python Socket編程技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對大家Python程序設(shè)計有所幫助。
相關(guān)文章
Python自動化實現(xiàn)日報數(shù)據(jù)可視化
這篇文章主要為大家詳細介紹了如何使用Python實現(xiàn)自動化生成日報數(shù)據(jù)可視化,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下2025-02-02
Python機器學習算法庫scikit-learn學習之決策樹實現(xiàn)方法詳解
這篇文章主要介紹了Python機器學習算法庫scikit-learn學習之決策樹實現(xiàn)方法,結(jié)合實例形式分析了決策樹算法的原理及使用sklearn庫實現(xiàn)決策樹的相關(guān)操作技巧,需要的朋友可以參考下2019-07-07
Python實現(xiàn)復(fù)制文檔數(shù)據(jù)
我們百度搜索一些東西得時候,經(jīng)常找到文檔里面然后就會發(fā)現(xiàn)需要充值才能復(fù)制!怎么可以不花錢也保存呢?今天就分享給大家一個python獲取文檔數(shù)據(jù)得方法,需要的可以收藏一下2022-12-12
Python使用BeautifulSoup爬取網(wǎng)頁數(shù)據(jù)的操作步驟
在網(wǎng)絡(luò)時代,數(shù)據(jù)是最寶貴的資源之一,而爬蟲技術(shù)就是一種獲取數(shù)據(jù)的重要手段,Python 作為一門高效、易學、易用的編程語言,自然成為了爬蟲技術(shù)的首選語言之一,本文將介紹如何使用 BeautifulSoup 爬取網(wǎng)頁數(shù)據(jù),并提供詳細的代碼和注釋,幫助讀者快速上手2023-11-11
Python自動化測試ConfigParser模塊讀寫配置文件
本文主要介紹Python自動化測試,這里詳細說明了ConfigParser模塊讀寫配置文件,有興趣的小伙伴可以參考下2016-08-08
Python的Django REST框架中的序列化及請求和返回
這篇文章主要介紹了Python的Django REST框架中的序列化及請求和返回,使用Django REST來實現(xiàn)RESTful web service非常方便和強大,需要的朋友可以參考下2016-04-04

