opencv图片转卡通图像案例
时间: 2023-10-20 22:43:46 浏览: 71
下面是一个使用OpenCV将图片转换为卡通图像的简单示例案例:
```python
import cv2
import numpy as np
def cartoonize_image(image):
# 转换为灰度图像
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# 使用中值模糊平滑图像
gray = cv2.medianBlur(gray, 5)
# 检测边缘
edges = cv2.adaptiveThreshold(gray, 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY, 9, 9)
# 应用双边滤波器来保留边缘细节并模糊化其他区域
color = cv2.bilateralFilter(image, 9, 250, 250)
# 合并边缘和彩色图像
cartoon = cv2.bitwise_and(color, color, mask=edges)
return cartoon
# 读取原始图像
image = cv2.imread('input.jpg')
# 转换为卡通图像
cartoon_image = cartoonize_image(image)
# 显示原始图像和卡通图像
cv2.imshow('Original Image', image)
cv2.imshow('Cartoon Image', cartoon_image)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在这个案例中,我们首先将原始图像转换为灰度图像,然后使用中值模糊平滑图像。接下来,我们使用自适应阈值方法检测边缘,并应用双边滤波器来保留边缘细节并模糊化其他区域。最后,我们通过对彩色图像和边缘图像进行按位与操作来合并它们,得到最终的卡通图像。
阅读全文