特征提取和颜色直方图

我正在研究图像处理特征提取。我有一张鸟的照片,我必须在其中提取鸟类区域并告诉鸟的颜色。我使用精明的特征提取方法来获取鸟类的边缘。

如何仅提取鸟类区域并使背景为蓝色?

openCv 解决方案也应该没问题。

http://img4.mukewang.com/60c0730a0001072004970338.jpg

import skimage

import numpy as np

%matplotlib inline

import matplotlib.pyplot as plt


import os

filename = os.path.join(os.getcwd(),'image\image_bird.jpeg')

from skimage import io

bird =io.imread(filename,as_grey=True)

plt.imshow(bird)

http://img.mukewang.com/60c073160001a92a03850254.jpg

from skimage import feature

edges = feature.canny(bird,sigma=1)

plt.imshow(edges )

http://img4.mukewang.com/60c073230001acd303830250.jpg

可以从鸟类链接获取实际的鸟类图像


慕沐林林
浏览 308回答 2
2回答

侃侃无极

识别图像的边缘通过自动阈值对图像进行二值化使用轮廓检测来识别白色区域内的黑色区域并将它们与白色区域合并。(样机,图片可能略有不同)使用创建的图像作为蒙版为背景着色并为其着色这可以通过简单地将每个背景像素(黑色)设置为其各自的颜色来完成。如您所见,该方法远非完美,但应该能让您大致了解如何完成任务。最终的图像质量可能会通过稍微腐蚀地图以将其收紧到鸟类的轮廓来提高。然后,您还可以使用遮罩通过仅考虑前景像素来计算颜色直方图。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python