Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我应该使用直方图或其他更高级的数学工具(如贝叶斯网络)进行材料分类/识别吗?_Python_Opencv_Bayesian Networks_Object Recognition - Fatal编程技术网

Python 我应该使用直方图或其他更高级的数学工具(如贝叶斯网络)进行材料分类/识别吗?

Python 我应该使用直方图或其他更高级的数学工具(如贝叶斯网络)进行材料分类/识别吗?,python,opencv,bayesian-networks,object-recognition,Python,Opencv,Bayesian Networks,Object Recognition,我正在学习OpenCV的基础知识,我认为一个好的项目会让我的学习更加有趣。在考虑了一些想法后,我提出了一些材料识别项目。比如说,我给自己买了一个输送机,它在运输生产某种产品的材料(这个产品其实并不重要,tho)。共有3种材料,照明条件会有所不同(从早上到下午使用自然光,晚上使用灯泡)。这就是问题描述 我想用沙子、木头和石头,它们很容易得到。然后把它们放在塑料表面上。拍摄完照片后,我将应用一些直方图来获得颜色,并使用这种颜色来识别材质。但是,由于闪电条件会随着时间的推移而变化,当我拍摄这张照片并应

我正在学习OpenCV的基础知识,我认为一个好的项目会让我的学习更加有趣。在考虑了一些想法后,我提出了一些材料识别项目。比如说,我给自己买了一个输送机,它在运输生产某种产品的材料(这个产品其实并不重要,tho)。共有3种材料,照明条件会有所不同(从早上到下午使用自然光,晚上使用灯泡)。这就是问题描述

我想用沙子、木头和石头,它们很容易得到。然后把它们放在塑料表面上。拍摄完照片后,我将应用一些直方图来获得颜色,并使用这种颜色来识别材质。但是,由于闪电条件会随着时间的推移而变化,当我拍摄这张照片并应用直方图时,颜色会发生变化,材料也无法正确识别。我想,如果我用沙子和灰尘,它们有非常相似的颜色,但不同的质地,有什么可以帮我吗


我只是想要一些想法,也许该领域的专家可以指导我。

对于一个启动项目来说,这是一个相当先进的想法。通过使用HSV或其他颜色空间,采用色调成分,可以解决照明的差异。但是,“纹理”问题可以通过两种方式处理:

  • 特征描述符:如果处理灰度图像,有一组称为灰度共生矩阵()的特征描述符,用于度量图像中不同区域的纹理。这是Matlab中提供的,对于OpenCV,有以下代码:

    所以你们可以拍摄一些沙子、木头和岩石的标准照片,并将它们作为分类器上的训练样本——NN、SVM、OpenCV的Haar分类器等等。然后用阴性样本进行训练。分类器的特征向量将是每个图片的GLCM输出。然后在实际图片上运行它,看看它们有多准确

  • 纹理粗糙度:偶然发现了一篇有用的论文,其中展示了一种称为特征变换的纹理“粗糙度”的单值度量。计算非常简单,特别是如果使用OpenCV的
    SVD()
    计算特征值。本征变换的结果给出了对应于该部分粗糙度的值。这可用于分离出所需的部分