当前位置:网站首页>[200 opencv routines] 220 Mosaic the image
[200 opencv routines] 220 Mosaic the image
2022-07-06 20:42:00 【Xiaobai youcans】
List of articles :『youcans Of OpenCV routine 200 piece - General catalogue 』
【youcans Of OpenCV routine 200 piece 】220. Mosaic the image
9. Mosaic processing of image
Mosaic effect is a widely used image and video processing method . Degrade the color scale details of the specified area in the image , Cause the effect of color block blur , It looks like a color block composed of small squares , Called mosaic . The main purpose of mosaic effect is to make the details of specific areas unrecognizable , It is often used to cover people's faces 、 Privacy information .
The mosaic method is very simple , Divide the processing area into small blocks , Set all pixels in each small square to the same or similar pixel values . routine A4.13 A simple implementation case is given .
The larger the size of the mosaic square , The more blurred the image , The more details the mosaic area image loses .
This is similar to image multiscale pixel sampling : Image down sampling , The resolution decreases step by step . Mosaic the whole image , It is equivalent to image down sampling ; Mosaic the part of the image , It is equivalent to the fusion of down sampling of the original image and local image .
Up sampling and down sampling are irreversible , High frequency information will be lost when the down sampled image is restored to its original size , Blur the picture . therefore , It is impossible in principle to eliminate image mosaic . however , Filling algorithm through interpolation of adjacent points of picture pixels , It can enhance the visual effect of mosaic area . In recent years , With AI Technological development , Based on learning a large number of similar clear images , Use AI The algorithm can restore the image better , Recognize faces or texts blocked by mosaics , Good results were achieved .
routine A4.13: Mosaic the specified area of the image
For the selected ROI Mosaic the area . The larger the size of the mosaic square , The more blurred the image , The more details the mosaic area image loses .
# A4.13 Mosaic the specified area of the image
img = cv.imread("../images/imgLena.tif", 1) # Load the original image , single channel
roi = cv.selectROI(img, showCrosshair=True, fromCenter=False)
x, y, wRoi, hRoi = roi # Position parameters of rectangular clipping region
# x, y, wRoi, hRoi = 208, 176, 155, 215 # Rectangular crop region
imgROI = img[y:y+hRoi, x:x+wRoi].copy() # Slice to get a rectangular clipping region
print(x, y, wRoi, hRoi)
plt.figure(figsize=(9, 6))
plt.subplot(231), plt.title("Original image"), plt.axis('off')
plt.imshow(cv.cvtColor(img, cv.COLOR_BGR2RGB))
plt.subplot(232), plt.title("Region of interest"), plt.axis('off')
plt.imshow(cv.cvtColor(imgROI, cv.COLOR_BGR2RGB))
mosaic = np.zeros(imgROI.shape, np.uint8) # ROI Area
ksize = [5, 10, 20] # Width of mosaic block
for i in range(3):
k = ksize[i]
for h in range(0, hRoi, k):
for w in range(0, wRoi, k):
color = imgROI[h,w]
mosaic[h:h+k,w:w+k,:] = color # Cover the mosaic block with vertex color
imgMosaic = img.copy()
imgMosaic[y:y + hRoi, x:x + wRoi] = mosaic
plt.subplot(2,3,i+4), plt.title("Coding image (size={})".format(k)), plt.axis('off')
plt.imshow(cv.cvtColor(imgMosaic, cv.COLOR_BGR2RGB))
plt.subplot(233), plt.title("Mosaic"), plt.axis('off')
plt.imshow(cv.cvtColor(mosaic, cv.COLOR_BGR2RGB))
plt.show()
【 At the end of this section 】
Copyright notice :
[email protected] Original works , Reprint must be marked with the original link :(https://blog.csdn.net/youcans/article/details/125522759)
Copyright 2022 youcans, XUPT
Crated:2022-6-30
218. Multi line oblique text watermark
219. Add digital blind watermark
220.220. Mosaic the image
边栏推荐
- 自定义限流注解
- 2022 nurse (primary) examination questions and new nurse (primary) examination questions
- Boder radius has four values, and boder radius exceeds four values
- Learn to punch in Web
- Special topic of rotor position estimation of permanent magnet synchronous motor -- Summary of position estimation of fundamental wave model
- Discussion on beegfs high availability mode
- 【每周一坑】输出三角形
- 解剖生理学复习题·VIII血液系统
- Basic knowledge of lists
- 知识图谱构建流程步骤详解
猜你喜欢
Quel genre de programmation les enfants apprennent - ils?
[diy] self designed Microsoft makecode arcade, official open source software and hardware
What programming do children learn?
Variable star --- article module (1)
Intel 48 core new Xeon run point exposure: unexpected results against AMD zen3 in 3D cache
新型数据库、多维表格平台盘点 Notion、FlowUs、Airtable、SeaTable、维格表 Vika、飞书多维表格、黑帕云、织信 Informat、语雀
Common doubts about the introduction of APS by enterprises
设计你的安全架构OKR
Pycharm remote execution
Mécanisme de fonctionnement et de mise à jour de [Widget Wechat]
随机推荐
基于STM32单片机设计的红外测温仪(带人脸检测)
[wechat applet] operation mechanism and update mechanism
Notes on beagleboneblack
use. Net drives the OLED display of Jetson nano
【每周一坑】输出三角形
[weekly pit] output triangle
Jupyter launch didn't respond after Anaconda was installed & the web page was opened and ran without execution
Review questions of anatomy and physiology · VIII blood system
Utilisation de l'écran OLED
Taylor series fast Fourier transform (FFT)
设计你的安全架构OKR
01 基础入门-概念名词
知识图谱之实体对齐二
"Penalty kick" games
[weekly pit] information encryption + [answer] positive integer factorization prime factor
7、数据权限注解
“罚点球”小游戏
Pytest (3) - Test naming rules
Detailed introduction of distributed pressure measurement system VIII: basic introduction of akka actor model
(work record) March 11, 2020 to March 15, 2021