Python 我怎样才能找到一条边界线,它将图像上的两种不同颜色分开,目的是沿着这条线分割图像?

Python 我怎样才能找到一条边界线,它将图像上的两种不同颜色分开,目的是沿着这条线分割图像?,python,opencv,image-processing,video-processing,hough-transform,Python,Opencv,Image Processing,Video Processing,Hough Transform,我正在做一个化学应用的视频和图像处理。该应用程序包括随时间跟踪双色粒子的方向。作为输入,我有一个粒子的视频,我把它分割成我用OpenCV预处理过的图像 为了跟踪粒子的方向,我必须首先找到一条线,它可以将粒子的黑色部分与白色部分分开,并使用它来跟踪随时间变化的角度 我的原始输入图像: 为了对我的图像进行预处理,我使用了Canny(一种检测所需粒子轮廓的方法),使用了一个遮罩来统一背景,并对图像进行了处理,使其具有清晰的黑白分离 后来,我尝试使用(图片向下并带有网站上提到的代码),但很明显,使用的

我正在做一个化学应用的视频和图像处理。该应用程序包括随时间跟踪双色粒子的方向。作为输入,我有一个粒子的视频,我把它分割成我用OpenCV预处理过的图像

为了跟踪粒子的方向,我必须首先找到一条线,它可以将粒子的黑色部分与白色部分分开,并使用它来跟踪随时间变化的角度

我的原始输入图像:

为了对我的图像进行预处理,我使用了Canny(一种检测所需粒子轮廓的方法),使用了一个遮罩来统一背景,并对图像进行了处理,使其具有清晰的黑白分离

后来,我尝试使用(图片向下并带有网站上提到的代码),但很明显,使用的线条不会分割粒子的颜色

因此,我想知道是否有一种方法可以改变直线的方向,或者找到边界线,它可以(最紧密地)分离粒子中的黑白色

如果我解决了这个问题,我所要做的就是将它应用到视频的所有帧中,并跟踪这个假定的“边界线”与水平线形成的角度

编辑:我正在添加一条我画的“预期”线,以便更清楚地理解我所说的黑白分割的意思:


也许可以使用精明的边缘检测。但请发布原始输入图像,以便我们可以看到您的问题。谢谢您的回答,我在处理原始图像(参见编辑)时首先使用了Canny边缘检测,是否可以重新使用它来解决我当前的问题?另外,根据要求,我加入了我的原始图像。很酷的问题!你能分享一些视频以便更好地理解吗?Dropbox,Google Drive或者类似的东西?谢谢。这只是关于我如何解决问题的更新。我最终没有使用任何“线分离”本身,而是使用了不同处理算法(canny、masks等)的组合,并分离出粒子的黑色部分。使用粒子中心坐标和粒子黑色部分中心坐标(两者都随时间演化),我用简单的三角法解决了这个问题。也许可以使用canny边缘检测。但请发布原始输入图像,以便我们可以看到您的问题。谢谢您的回答,我在处理原始图像(参见编辑)时首先使用了Canny边缘检测,是否可以重新使用它来解决我当前的问题?另外,根据要求,我加入了我的原始图像。很酷的问题!你能分享一些视频以便更好地理解吗?Dropbox,Google Drive或者类似的东西?谢谢。这只是关于我如何解决问题的更新。我最终没有使用任何“线分离”本身,而是使用了不同处理算法(canny、masks等)的组合,并分离出粒子的黑色部分。使用粒子中心坐标和粒子黑色部分中心坐标(两者都随时间演化),我用简单的三角法解决了这个问题。