Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.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_Django_Opencv_Image Recognition_Handwriting - Fatal编程技术网

检测Python中的线条倾斜

检测Python中的线条倾斜,python,django,opencv,image-recognition,handwriting,Python,Django,Opencv,Image Recognition,Handwriting,我正在创建一个系统,将能够注册的人谁将手写文本,稍后我将不得不分析这个图像,并检测是否书写上升,下降或直。通过笔迹学,我将能够创建此人的个人资料,但我不知道如何分析该图像 系统使用Python和Django,我只需要阅读图片就可以进行分析。有人对如何进行分析有什么建议吗 一个可能的解决方案是使用提供角度的。一旦你有了它,只需设置你的阈值,说明文字是否为[‘上升’、‘下降’、‘水平’]: write=cv2.imread'your\u image.png',cv2.imread\u COLOR w

我正在创建一个系统,将能够注册的人谁将手写文本,稍后我将不得不分析这个图像,并检测是否书写上升,下降或直。通过笔迹学,我将能够创建此人的个人资料,但我不知道如何分析该图像

系统使用Python和Django,我只需要阅读图片就可以进行分析。有人对如何进行分析有什么建议吗


一个可能的解决方案是使用提供角度的。一旦你有了它,只需设置你的阈值,说明文字是否为[‘上升’、‘下降’、‘水平’]:

write=cv2.imread'your\u image.png',cv2.imread\u COLOR write_gray=cv2.cvt颜色write,cv2.COLOR_bgr2灰色 ret,thresh=cv2.thresholdwrite\u gray,150255,cv2.threshold\u BINARY\u INV 扩大篇幅 elem=cv2.getStructuringElementcv2.MORPH_RECT,4,4,2,2 扩张=cv2。扩张阈值,元素,迭代次数=1 轮廓,层次=cv2.findContoursdilat,cv2.RETR\u EXTERNAL,cv2.CHAIN\u近似值\u SIMPLE 对于轮廓中的cnt: 如果cv2.contourAreacnt>1600:仅保留书写文本 box=cv2.MinareCont 位置、大小、角度=框 box=cv2.boxPointsbox box=np.int0box cv2.drawContourswrite[box],0,0255,0,2 角度=角度,如果尺寸[0]>尺寸[1],否则角度+90 pos=cnt[cnt[:,:,0].argmin][0][0],cnt[cnt[:,:,1].argmin][0][1] 打印角度
如果为-2,请从中重复和。“演示如何解决此编码问题”不是堆栈溢出问题。我们希望你做一个诚实的尝试,然后问一个关于你的算法或技术的具体问题。也许应用一些形态学来得到一簇漂亮的斑点,并将一条直线拟合到它们的水平坐标,然后逆时针计算直线和0度参考之间的角度。从形态学后的轮廓获取旋转矩形框的角度,以将文本字符连接到一个连续区域非常有趣的问题,但不幸的是,这不是提出此问题的正确位置。我过去也做过类似的事情。我的建议是缩小输入图像的比例,然后尝试拟合一条直线。你只需要那条线的斜率就可以决定基线是否在上升、下降等。一个更有趣的问题是,当你想要计算给定手写文本的倾斜笔迹术语时。如果你恰好活跃在另一个允许进行此类讨论的论坛,我很乐意继续对话。类似于@Raiyan所建议的内容。您还可以尝试使用MinareRect在写入中查找点集的最小面积矩形,或者尝试使用fitEllipse在点集周围拟合椭圆。两者都会给你一个旋转方向,你可以从中得到角度。很好的解决方案!比这更值得一试,但做得很好。