python opencv实现高斯滤波代码
时间: 2023-07-24 22:11:03 浏览: 101
以下是Python OpenCV实现高斯滤波的代码示例:
```python
import cv2
# 加载图像
img = cv2.imread('input.jpg')
# 定义高斯内核大小和标准差
ksize = (5,5)
sigma = 1.5
# 对图像进行高斯滤波
dst = cv2.GaussianBlur(img, ksize=ksize, sigmaX=sigma, sigmaY=sigma)
# 显示滤波结果
cv2.imshow('Gaussian Filter', dst)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在这个示例中,我们使用OpenCV库来加载和显示图像,并使用`cv2.GaussianBlur`函数对图像进行高斯滤波。函数的参数包括输入图像、高斯内核大小、标准差。然后,我们在窗口中显示滤波结果。
相关问题
python opencv2高斯滤波
在Python中使用OpenCV2进行高斯滤波操作,可以使用`cv2.GaussianBlur()`函数。该函数的语法如下:
```python
cv2.GaussianBlur(src, ksize, sigmaX[, dst[, sigmaY[, borderType]]])
```
其中,参数解释如下:
- `src`:输入图像
- `ksize`:内核大小,一般为奇数。例如,`ksize=(3,3)`,表示内核大小为3x3。如果只设置一个值,则表示内核大小为ksize x ksize。
- `sigmaX`:高斯核在X方向上的标准差。
- `dst`:输出图像,与源图像大小、类型相同。
- `sigmaY`:高斯核在Y方向上的标准差。如果sigmaY为0,那么就将sigmaY设置为sigmaX,即高斯核是一个圆形。
- `borderType`:边界扩充类型,默认为`cv2.BORDER_DEFAULT`。
下面是一个示例代码:
```python
import cv2
img = cv2.imread('test.jpg')
blur = cv2.GaussianBlur(img, (5, 5), 0)
cv2.imshow('Gaussian Blur', blur)
cv2.waitKey(0)
```
在这个例子中,我们读入一张名为`test.jpg`的图片,然后对它进行了高斯滤波操作,内核大小为5x5。最后,显示了处理后的图像。
python opencv 高斯高通滤波
高斯高通滤波是一种图像增强技术,可以通过增强图像中高频信息的方式来增强图像的细节。
使用OpenCV实现高斯高通滤波可以分为以下几步:
1.读取图像并将其转换为灰度图像。
import cv2
img = cv2.imread('input.png')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
2.计算高斯核。
ksize = 3 # 此处选择核的大小为3,可以根据实际情况进行调整
sigma = 1.5 # 此处选择sigma=1.5,可以根据实际情况进行调整
kernel = cv2.getGaussianKernel(ksize, sigma)
kernel = kernel * kernel.T # 使高斯核变成二维
3.进行高斯卷积。
gaussian = cv2.filter2D(gray, -1, kernel)
4.进行高通滤波。
alpha = 1.5 # 此处选择alpha=1.5,可以根据实际情况进行调整
beta = 0.5 # 此处选择beta=0.5,可以根据实际情况进行调整
highpass = gray - beta * gaussian
highpass = cv2.convertScaleAbs(alpha * highpass)
5.将处理后的图像进行保存。
cv2.imwrite('output.png', highpass)
完整代码如下:
import cv2
img = cv2.imread('input.png')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
ksize = 3
sigma = 1.5
kernel = cv2.getGaussianKernel(ksize, sigma)
kernel = kernel * kernel.T
gaussian = cv2.filter2D(gray, -1, kernel)
alpha = 1.5
beta = 0.5
highpass = gray - beta * gaussian
highpass = cv2.convertScaleAbs(alpha * highpass)
cv2.imwrite('output.png', highpass)
阅读全文