当前位置:网站首页>[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
边栏推荐
- C language games - minesweeping
- SSO single sign on
- 小孩子學什麼編程?
- 01 basic introduction - concept nouns
- Summary of different configurations of PHP Xdebug 3 and xdebug2
- Review questions of anatomy and physiology · VIII blood system
- The mail command is used in combination with the pipeline command statement
- Tencent T4 architect, Android interview Foundation
- [weekly pit] output triangle
- Design your security architecture OKR
猜你喜欢

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

Gui Gui programming (XIII) - event handling

Number of schemes from the upper left corner to the lower right corner of the chessboard (2)

Trends of "software" in robotics Engineering

性能测试过程和计划

Design your security architecture OKR

Pycharm remote execution

Notes on beagleboneblack

【DSP】【第一篇】开始DSP学习

Application layer of tcp/ip protocol cluster
随机推荐
Kubernetes learning summary (20) -- what is the relationship between kubernetes and microservices and containers?
2022 refrigeration and air conditioning equipment installation and repair examination contents and new version of refrigeration and air conditioning equipment installation and repair examination quest
[weekly pit] information encryption + [answer] positive integer factorization prime factor
知识图谱之实体对齐二
设计你的安全架构OKR
Application layer of tcp/ip protocol cluster
小孩子学什么编程?
动态切换数据源
[diy] how to make a personalized radio
Recyclerview GridLayout bisects the middle blank area
Notes on beagleboneblack
Database - how to get familiar with hundreds of tables of the project -navicat these unique skills, have you got it? (exclusive experience)
In unity space, an object moves around a fixed point on the sphere at a fixed speed
逻辑是个好东西
[weekly pit] calculate the sum of primes within 100 + [answer] output triangle
Taylor series fast Fourier transform (FFT)
2110 summary of knowledge points and common problems in redis class
Spiral square PTA
Case ① | host security construction: best practice of 3 levels and 11 capabilities
APS taps home appliance industry into new growth points