当前位置:网站首页>[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
边栏推荐
- How to upgrade high value-added links in the textile and clothing industry? APS to help
- C language games - minesweeping
- 2022 nurse (primary) examination questions and new nurse (primary) examination questions
- Pycharm remote execution
- Web开发小妙招:巧用ThreadLocal规避层层传值
- SQL injection 2
- Spiral square PTA
- Jupyter launch didn't respond after Anaconda was installed & the web page was opened and ran without execution
- Statistical inference: maximum likelihood estimation, Bayesian estimation and variance deviation decomposition
- Leetcode question 448 Find all missing numbers in the array
猜你喜欢

Special topic of rotor position estimation of permanent magnet synchronous motor -- fundamental wave model and rotor position angle
![[diy] self designed Microsoft makecode arcade, official open source software and hardware](/img/a3/999c1d38491870c46f380c824ee8e7.png)
[diy] self designed Microsoft makecode arcade, official open source software and hardware

小孩子學什麼編程?

2022 nurse (primary) examination questions and new nurse (primary) examination questions

Leetcode question 283 Move zero

使用.Net分析.Net达人挑战赛参与情况
![[weekly pit] information encryption + [answer] positive integer factorization prime factor](/img/d8/a367c26b51d9dbaf53bf4fe2a13917.png)
[weekly pit] information encryption + [answer] positive integer factorization prime factor

How does kubernetes support stateful applications through statefulset? (07)

【每周一坑】信息加密 +【解答】正整数分解质因数

OLED屏幕的使用
随机推荐
Utilisation de l'écran OLED
【每周一坑】计算100以内质数之和 +【解答】输出三角形
Summary of different configurations of PHP Xdebug 3 and xdebug2
逻辑是个好东西
[DIY]自己设计微软MakeCode街机,官方开源软硬件
B-杰哥的树(状压树形dp)
How does kubernetes support stateful applications through statefulset? (07)
设计你的安全架构OKR
PHP online examination system version 4.0 source code computer + mobile terminal
Laravel笔记-自定义登录中新增登录5次失败锁账户功能(提高系统安全性)
[asp.net core] set the format of Web API response data -- formatfilter feature
小孩子學什麼編程?
【DSP】【第一篇】开始DSP学习
Number of schemes from the upper left corner to the lower right corner of the chessboard (2)
OLED屏幕的使用
(工作记录)2020年3月11日至2021年3月15日
Tencent T4 architect, Android interview Foundation
Quel genre de programmation les enfants apprennent - ils?
Unity makes AB package
【微信小程序】運行機制和更新機制