空域滤波学习

空域计算——2-D卷积(滤波)
直接2-D卷积方法:

  1. 图像矩阵与卷积核
  2. 乘积运算:对于图像的每一像素点,计算它的领域像素和卷积核的对应元素的乘积
  3. 加法运算:将每项乘积相加,作为该像素位置的值。

空域滤波器

平滑(低通)锐化(高通)
它能减弱或消除图像中的高频分量(如噪声),但图像边缘和图像轮廓变得模糊它能减弱或消除图像中的低频分量,使图像的边缘、轮廓线以及图像的细节变得清晰

高斯滤波
采用高斯模板的空间卷积
在这里插入图片描述
掩膜
ROI(region of interest)感兴趣区域

import cv2
import numpy as np

def roi_mask(img,vertices):
	mask = np.zeros_like(img)
	if len(img.shape) > 2:
		channel_count = img.shape[2]
		mask_color = (255,)*channel_count
	else:
		mask_color = 256
	
	cv2.fillPoly(mask,verticles,mask_color)
	masked_img = cv2.bitwise_and(img,mask)
	return masked_img

def showing(name,img):
	cv2.imshow(name,img)
	cv2.waitKey(0)
	cv2.destroyAllWindows()

img = cv2.imread('image\lane.jpg')
# 灰度图像 img = cv2.cvtColor(img,cv2.COLOR_BGR2_GRAY)

> 这里是引用

h = image.shape[0]
w = image.shape[1]

roi_vtx = np.array([[(0,h),(260,325),(520,325),(w,h)]])
img_mask = roi_mask(img,roi_vtx)
showing('orgimg',img)
showing('newimg',img_mask)

空域滤波

import cv2
import matplotlib.pyplot as plt
import numpy as np
import math

def myfilter(img,kernel):
	h = img.shape[0]
	w = img.shape[1]
	img1 = np.zeros((h,w),np.int8)
	for i in range(1,h-1):
		for j in range(1,w-1):
			sum = 0
			for k in range(-1,2):
				for l in range(-1,2):
					sum += img[i+k,j+l]*kernel[k+1,l+1]
			img[i,j] = sum
	return img1

img = np.array([[1,0,0,0,0,1],
				[0,1,0,0,1,0],
                [0,0,1,1,0,0],
                [1,0,0,0,1,0],
                [0,1,0,0,1,0],
                [0,0,1,0,1,0]])
kernel = np.array([[1,-1, -1],
                   [-1,1, -1],
                   [-1,-1, 1]])
filtered_img = myfilter(img,kernel)
print(filtered_img)

图像空域滤波

import cv2
import matplotlib.pyplot as plt
import numpy as np
import math

def myfilter(img,kernel):
	h = img.shape[0]
	w = img.shape[1]
	img1 = np.zeros((h,w),np.uint8)
	for i in range(1,h-1):
		for j in range(1,w-1):
			sum = 0
			for k in range(-1,2):
				for l in range(-1,2):
					sum += img[i+k][j+l]*kernel[i+1][j+1]
			img1[i][j] = sum
	return img1

def show(img):
	cv2.imshow('img',img)
	cv2.waitKey(0)
	cv2.destroyAllWindows()

高斯函数中
sigma越小,图像越尖锐
sigma越大,图像越平缓

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

饼干饼干圆又圆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值