原圖為:import cv2
##馬賽克
def do_mosaic(frame, x, y, w, h, neighbor=9):
"""馬賽克的實現原理是把影象上某個畫素點一定範圍鄰域內的所有點用鄰域內左上畫素點的顏色代替,這樣可以模糊細節,但是可以保留大體的輪廓。
: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): # 關鍵點0 減去neightbour 防止溢位
for j in range(0, w - neighbor, neighbor):
rect = [j + x, i + y, neighbor, neighbor]
color = frame[i + y][j + x].tolist() # 關鍵點1 tolist
left_up = (rect[0], rect[1])
right_down = (rect[0] + neighbor - 1, rect[1] + neighbor - 1) # 關鍵點2 減去乙個畫素
效果如下:
opencv馬賽克python實現
import cv2 馬賽克 def do mosaic frame,x,y,w,h,neighbor 9 馬賽克的實現原理是把影象上某個畫素點一定範圍鄰域內的所有點用鄰域內左上畫素點的顏色代替,這樣可以模糊細節,但是可以保留大體的輪廓。param frame opencv frame param ...
OpenCV 馬賽克效果
馬賽克的原理,即將對應需馬賽克處理區域內的畫素,按小方塊劃分,將每一塊小方塊內不同顏色的畫素使用同一顏色進行替代。如下 import cv2 import numpy as np img cv2.imread test.png 1 imginfo img.shape height imginfo 0...
python使用opencv實現馬賽克效果示例
最近要實現opencv 打馬賽克,在網上找了一下基本是c 的實現,好在原理一樣,下面給出python實現。原理和注意點,我都寫在注釋裡了 import cv2 馬賽克 def do mosaic frame,x,y,w,h,neighbor 9 馬賽克的實現原理是把影象上某個畫素點一定範圍鄰域內的所...