Questions tagged «image-segmentation»


8
检测照片中纸张角落的算法
检测照片中发票/收据/纸的角落的最佳方法是什么?这将用于OCR之前的后续透视校正。 我当前的方法是: RGB>灰色>具有阈值的Canny边缘检测>扩张(1)>移除小对象(6)>清除边界对象>根据凸面区域选择大博客。> [角落检测-未实施] 我忍不住想,必须有一种更强大的“智能” /统计方法来处理这种类型的细分。我没有很多训练示例,但是我可能可以一起获得100张图像。 更广泛的上下文: 我正在使用matlab进行原型制作,并计划在OpenCV和Tesserect-OCR中实施该系统。这是我需要针对此特定应用程序解决的许多图像处理问题中的第一个。因此,我希望推出自己的解决方案,并重新熟悉图像处理算法。 这是一些我希望算法处理的示例图像:如果您想接受挑战,则可以在http://madteckhead.com/tmp上找到大图像。 (来源:madteckhead.com) (来源:madteckhead.com) (来源:madteckhead.com) (来源:madteckhead.com) 最好的情况是: (来源:madteckhead.com) (来源:madteckhead.com) (来源:madteckhead.com) 但是,在其他情况下,它很容易失败: (来源:madteckhead.com) (来源:madteckhead.com) (来源:madteckhead.com) 预先感谢所有很棒的主意!我太爱了! 编辑:霍夫变换进展 问:什么样的算法会聚簇霍夫线来寻找拐角?遵循答案的建议,我能够使用霍夫变换,选取线条并对其进行过滤。我当前的方法相当粗糙。我已经假设发票将始终小于与图像对齐的15度。如果是这种情况,我最终得到的行结果合理(请参阅下文)。但是,不能完全确定是否有合适的算法来对直线(或投票)进行聚类以推断出拐角。霍夫线不连续。并且在嘈杂的图像中,可能存在平行线,因此需要某种形式或距线原点度量的距离。有任何想法吗? (来源:madteckhead.com)

3
与“细分”和“场景标记”相比,“语义细分”是什么?
语义分割是仅仅是“白痴”,还是“语义分割”和“分割”之间有区别?“场景标签”或“场景解析”有区别吗? 像素级分割与逐像素分割有什么区别? (旁白:当您使用这种像素级注释时,是否可以免费获得对象检测,还是还有其他事情要做?) 请提供您的定义来源。 使用“语义细分”的来源 Jonathan Long,Evan Shelhamer,Trevor Darrell:用于语义分割的完全卷积网络。2015年的CVPR和2016年的PAMI Hong,Seunghoon,Hyeonwoo Noh和Bohyung Han:“去耦深度神经网络用于半监督语义分割。” arXiv预印本arXiv:1506.04924,2015。 V. Lempitsky,A。Vedaldi和A. Zisserman:用于语义分割的塔模型。《神经信息处理系统进展》,2011年。 使用“场景标签”的来源 Clement Farabet,Camille Couprie,Laurent Najman,Yann LeCun:学习场景标签的层次特征。在模式分析和机器智能中,2013年。 使用“像素级”的来源 Pinheiro,Pedro O.和Ronan Collobert:“从卷积网络的图像级到像素级标签。” IEEE关于计算机视觉和模式识别的会议论文集,2015年。(请参阅http://arxiv.org/abs/1411.6228) 使用“ pixelwise”的源 李宏胜,赵锐和王小刚:“卷积神经网络的高效向前和向后传播,用于像素分类。” arXiv预印本arXiv:1412.4526,2014。 Google Ngrams 近年来,“语义细分”似乎比“场景标记”使用更多

3
如何在OpenCV中定义分水岭的标记?
我正在使用OpenCV为Android编写。我正在使用标记控制的分水岭对类似于下面的图像进行分割,而无需用户手动标记图像。我打算将区域最大值用作标记​​。 minMaxLoc()会给我带来价值,但是如何将其限制在我感兴趣的斑点上?我可以利用来自findContours()或cvBlob Blob的结果来限制ROI并将最大值应用于每个Blob吗?

1
OCR的清洁图像
我一直在尝试清除OCR的图像:(线条) 我需要删除这些行以有时对图像进行进一步处理,并且我已经很接近了,但是在很多情况下,阈值从文本中去除了太多: copy = img.copy() blur = cv2.GaussianBlur(copy, (9,9), 0) thresh = cv2.adaptiveThreshold(blur,255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY_INV,11,30) kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (9,9)) dilate = cv2.dilate(thresh, kernel, iterations=2) cnts = cv2.findContours(dilate, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) cnts = cnts[0] if len(cnts) == 2 else cnts[1] for c in cnts: area = cv2.contourArea(c) if area > 300: x,y,w,h = …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.