我如何获得以下图片的黑白图像?

ann*_*nie 2 python opencv image-processing computer-vision scikit-image

在此处输入图片说明

我想将图片准确地转换为黑白图像,其中种子将用白色表示,背景用黑色表示。我想在python opencv代码中使用它。请帮帮我

使用下面的给定代码,对于上述图片,我得到了很好的结果。现在,我有另一幅画,其阈值似乎不起作用。我该如何解决这个问题。我得到的输出如下图 在此处输入图片说明

同样,种子中也有一些凹痕,程序将其作为种子的边界,效果不佳,如下图所示。我如何使该程序忽略凹痕。在这种情况下,遮盖种子是个不错的选择。 在此处输入图片说明

Jer*_*uke 5

我将图像从BGR色彩空间转换为HSV色彩空间。

然后我提取了色相通道:

在此处输入图片说明

然后我对其执行了阈值:

在此处输入图片说明

注意:

每当您在某些区域遇到困难时,请尝试在其他颜色空间中进行操作,HSV颜色空间最为突出。

更新:

这是代码:

import cv2
import numpy as np

filename = 'seed.jpg'
img = cv2.imread(filename)  #---Reading image file---

hsv_img = cv2.cvtColor(img,cv2.COLOR_BGR2HSV)  #---Converting RGB image to HSV
hue, saturation, value, = cv2.split(hsv_img)   #---Splitting HSV image to 3 channels---

blur = cv2.GaussianBlur(hue,(3,3),0)   #---Blur to smooth the edges---

ret,th = cv2.threshold(blur, 38, 255, 0)   #---Binary threshold---
cv2.imshow('th.jpg',th)
Run Code Online (Sandbox Code Playgroud)

现在,您可以执行轮廓操作以突出显示您感兴趣的区域。试试看!!:)

另一个更新:

我发现轮廓高于某个约束来获得此效果:

在此处输入图片说明