我正在研究计算机视觉,我的图像如下所示:

tissue

我想找出纸巾上的黑线.我try 了以下代码

import cv2
img = cv2.imread('image.png')
# convert img to grayscale
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

# do morphology gradient
kernel = cv2.getStructuringElement(cv2.MORPH_RECT , (3,3))
morph = cv2.morphologyEx(gray, cv2.MORPH_GRADIENT, kernel)

# apply gain
morph = cv2.multiply(morph, 10)
morph=cv2.resize(morph, (1000, 552))
imgStack = stackImages(0.5, ([img ], [morph]))
cv2.imshow('Stacked Images', imgStack)
cv2.waitKey(0)

上述代码行给出:

outputimage

正如我们所看到的,现有的模式占主导地位,很难确定这条线.如何丢弃真实的图案并识别变形金刚.

I did try the other answers in stackoverflow, but nothing seem to work

推荐答案

关于 comments ,我建议采用全球阈值cv2.threshold():

Code:

img = cv2.imread(r'C:\Users\524316\Desktop\Stack\tissue.png')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
threshold_value = 20
th = cv2.threshold(gray, threshold_value, 255, cv2.THRESH_BINARY_INV)[1]
cv2.imshow(cv2.hconcat([gray, th]))
cv2.waitKey(0)

Result:

enter image description here

请注意,黑线高亮显示,而其他图案不受影响.

Python相关问答推荐

max_of_three使用First_select、second_select、

numba jitClass,记录类型为字符串

未删除映射表的行

运行终端命令时出现问题:pip start anonymous"

在Polars(Python库)中将二进制转换为具有非UTF-8字符的字符串变量

如何在python polars中停止otherate(),当使用when()表达式时?

将9个3x3矩阵按特定顺序排列成9x9矩阵

把一个pandas文件夹从juyter笔记本放到堆栈溢出问题中的最快方法?

如何使用SentenceTransformers创建矢量嵌入?

合并帧,但不按合并键排序

可以bcrypts AES—256 GCM加密损坏ZIP文件吗?

使用Python查找、替换和调整PDF中的图像'

如何在达到end_time时自动将状态字段从1更改为0

Pandas:计算中间时间条目的总时间增量

在代码执行后关闭ChromeDriver窗口

在用于Python的Bokeh包中设置按钮的样式

BeautifulSoup-Screper有时运行得很好,很健壮--但有时它失败了::可能这里需要一些更多的异常处理?

简单 torch 模型测试:ModuleNotFoundError:没有名为';Ultralytics.yolo';

为什么按下按钮后屏幕的 colored颜色 保持不变?

.awk文件可以使用子进程执行吗?