当前位置:网站首页>One hundred questions of image processing (11-20)
One hundred questions of image processing (11-20)
2022-07-06 16:42:00 【Dog egg L】
Question 11 : Mean filter
Use 3*3 Let's use the average filter of !
The output of the smooth linear spatial filter is a simple average of the pixels contained in the neighborhood of the filter template , Mean filter . The mean filter is also a low-pass filter , Mean filter is easy to understand , That is, assign the average value in the neighborhood to the central element .
Mean filter is used to reduce noise , The main application of mean filter is to remove irrelevant details in the image , Uncorrelation refers to the small pixel area compared with the filter template . Blur the picture to get a rough description of the object of interest , So the grayscale of those smaller objects will be mixed with the background , Larger objects become like spots and are easy to detect . The size of the template is determined by the size of the objects that will blend into the background .
import cv2
import numpy as np
# mean filter
def mean_filter(img, K_size=3):
H, W, C = img.shape
# zero padding
pad = K_size // 2
out = np.zeros((H + pad * 2, W + pad * 2, C), dtype=np.float)
out[pad: pad + H, pad: pad + W] = img.copy().astype(np.float)
tmp = out.copy()
# filtering
for y in range(H):
for x in range(W):
for c in range(C):
out[pad + y, pad + x, c] = np.mean(tmp[y: y + K_size, x: x + K_size, c])
out = out[pad: pad + H, pad: pad + W].astype(np.uint8)
return out
# Read image
img = cv2.imread("jiaoyan.jpg")
# Mean Filter
out = mean_filter(img, K_size=3)
# Save result
cv2.imwrite("out.jpg", out)
cv2.imshow("result", out)
cv2.waitKey(0)
cv2.destroyAllWindows()
Original image
After processing the image
Question 12 :Motion Filter
Motion Filter Take the average value of pixels in the diagonal direction , Define as follows :
import cv2
import numpy as np
# motion filter
def motion_filter(img, K_size=3):
H, W, C = img.shape
# Kernel
K = np.diag( [1] * K_size ).astype(np.float)
K /= K_size
# zero padding
pad = K_size // 2
out = np.zeros((H + pad * 2, W + pad * 2, C), dtype=np.float)
out[pad: pad + H, pad: pad + W] = img.copy().astype(np.float)
tmp = out.copy()
# filtering
for y in range(H):
for x in range(W):
for c in range(C):
out[pad + y, pad + x, c] = np.sum(K * tmp[y: y + K_size, x: x + K_size, c])
out = out[pad: pad + H, pad: pad + W].astype(np.uint8)
return out
# Read image
img = cv2.imread("jiaoyan.jpg")
# motion filtering
out = motion_filter(img, K_size=3)
# Save result
cv2.imwrite("out.jpg", out)
cv2.imshow("result", out)
cv2.waitKey(0)
cv2.destroyAllWindows()
边栏推荐
- Oneforall installation and use
- Educational Codeforces Round 130 (Rated for Div. 2)A~C
- Investigation report of bench type Brinell hardness tester industry - market status analysis and development prospect prediction
- Double specific tyrosine phosphorylation regulated kinase 1A Industry Research Report - market status analysis and development prospect prediction
- Base dice (dynamic programming + matrix fast power)
- Research Report on market supply and demand and strategy of China's four seasons tent industry
- js封装数组反转的方法--冯浩的博客
- Research Report on market supply and demand and strategy of Chinese table lamp industry
- Codeforces round 797 (Div. 3) no f
- Solve the problem of intel12 generation core CPU [small core full, large core onlookers] (win11)
猜你喜欢
Installation and configuration of MariaDB
Codeforces Round #801 (Div. 2)A~C
Chapter 5 detailed explanation of consumer groups
Click QT button to switch qlineedit focus (including code)
Solve the single thread scheduling problem of intel12 generation core CPU (II)
Codeforces round 797 (Div. 3) no f
Log statistics (double pointer)
Kubernetes集群部署
ffmpeg命令行使用
Raspberry pie 4b64 bit system installation miniconda (it took a few days to finally solve it)
随机推荐
Market trend report, technological innovation and market forecast of China's double sided flexible printed circuit board (FPC)
China double brightening film (dbef) market trend report, technical dynamic innovation and market forecast
Base dice (dynamic programming + matrix fast power)
875. 爱吃香蕉的珂珂 - 力扣(LeetCode)
Research Report on market supply and demand and strategy of China's four flat leadless (QFN) packaging industry
QT realizes window topping, topping state switching, and multi window topping priority relationship
Market trend report, technical innovation and market forecast of tabletop dishwashers in China
第5章 消费者组详解
两个礼拜速成软考中级软件设计师经验
Input can only input numbers, limited input
China tetrabutyl urea (TBU) market trend report, technical dynamic innovation and market forecast
Tencent interview algorithm question
Spark的RDD(弹性分布式数据集)返回大结果集
AcWing——第55场周赛
Solve the problem that intel12 generation core CPU single thread only runs on small cores
软通乐学-js求字符串中字符串当中那个字符出现的次数多 -冯浩的博客
Acwing - game 55 of the week
How to insert mathematical formulas in CSDN blog
Chapter 1 overview of MapReduce
业务系统兼容数据库Oracle/PostgreSQL(openGauss)/MySQL的琐事