当前位置:网站首页>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()

边栏推荐
- Useeffect, triggered when function components are mounted and unloaded
- AcWing——第55场周赛
- useEffect,函數組件掛載和卸載時觸發
- Summary of FTP function implemented by qnetworkaccessmanager
- Codeforces Global Round 19
- Anaconda下安装Jupyter notebook
- Acwing - game 55 of the week
- Acwing: the 56th weekly match
- Codeforces Round #797 (Div. 3)无F
- Codeforces Round #800 (Div. 2)AC
猜你喜欢

使用jq实现全选 反选 和全不选-冯浩的博客

Chapter 6 rebalance details

新手必会的静态站点生成器——Gridsome

Spark独立集群Worker和Executor的概念

业务系统兼容数据库Oracle/PostgreSQL(openGauss)/MySQL的琐事

Kubernetes cluster deployment

Installation and configuration of MariaDB

Problem - 922D、Robot Vacuum Cleaner - Codeforces

Simply try the new amp model of deepfacelab (deepfake)

本地可视化工具连接阿里云centOS服务器的redis
随机推荐
两个礼拜速成软考中级软件设计师经验
Study notes of Tutu - process
(lightoj - 1369) answering queries (thinking)
MariaDB的安装与配置
Li Kou: the 81st biweekly match
Classic application of stack -- bracket matching problem
Simply try the new amp model of deepfacelab (deepfake)
js时间函数大全 详细的讲解 -----阿浩博客
Investigation report of bench type Brinell hardness tester industry - market status analysis and development prospect prediction
(POJ - 3186) treatments for the cows (interval DP)
Research Report on market supply and demand and strategy of China's tetraacetylethylenediamine (TAED) industry
Chapter 5 detailed explanation of consumer groups
Problem - 1646C. Factorials and Powers of Two - Codeforces
解决Intel12代酷睿CPU单线程调度问题(二)
QT simulates mouse events and realizes clicking, double clicking, moving and dragging
Acwing: Game 58 of the week
The concept of spark independent cluster worker and executor
Codeforces Round #799 (Div. 4)A~H
指定格式时间,月份天数前补零
Codeforces Round #800 (Div. 2)AC