opencv怎么分别计算两条线段?for (int i = 0; i < lines->total; i++){ \x05\x05CvPoint* line = (CvPoint*)cvGetSeqElem (lines,i); \x05\x05double slope = ((double)(line[0].y - line[1].y))/((double)(line[0].x - line[1].x)); \x05\
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/30 23:02:27
![opencv怎么分别计算两条线段?for (int i = 0; i < lines->total; i++){ \x05\x05CvPoint* line = (CvPoint*)cvGetSeqElem (lines,i); \x05\x05double slope = ((double)(line[0].y - line[1].y))/((double)(line[0].x - line[1].x)); \x05\](/uploads/image/z/11694286-46-6.jpg?t=opencv%E6%80%8E%E4%B9%88%E5%88%86%E5%88%AB%E8%AE%A1%E7%AE%97%E4%B8%A4%E6%9D%A1%E7%BA%BF%E6%AE%B5%3Ffor+%28int+i+%3D+0%3B+i+%26lt%3B+lines-%26gt%3Btotal%3B+i%2B%2B%29%7B++++++%5Cx05%5Cx05CvPoint%2A+line+%3D+%28CvPoint%2A%29cvGetSeqElem+%28lines%2Ci%29%3B+++++%5Cx05%5Cx05double+slope+%3D+%28%28double%29%28line%5B0%5D.y+-+line%5B1%5D.y%29%29%2F%28%28double%29%28line%5B0%5D.x+-+line%5B1%5D.x%29%29%3B++++%5Cx05%5C)
opencv怎么分别计算两条线段?for (int i = 0; i < lines->total; i++){ \x05\x05CvPoint* line = (CvPoint*)cvGetSeqElem (lines,i); \x05\x05double slope = ((double)(line[0].y - line[1].y))/((double)(line[0].x - line[1].x)); \x05\
opencv怎么分别计算两条线段?
for (int i = 0; i < lines->total; i++){
\x05\x05CvPoint* line = (CvPoint*)cvGetSeqElem (lines,i);
\x05\x05double slope = ((double)(line[0].y - line[1].y))/((double)(line[0].x - line[1].x));
\x05\x05if(atan(slope)/CV_PI*180 > -20 && atan(slope)/CV_PI*180 < -5){
cvLine (pImgDst,line[0],line[1],CV_RGB(255,0,0),2,8);
\x05\x05}
\x05}
用霍夫变换找到的两条线段,然后用CVLINE画了出来. 我想请问一下,怎么才能分别得到这两条线段的端点的位置呢?
line[0].x line[1].x 是线段两点的x坐标,但是现在是两条线段 ,不是很清楚,应该怎么区分.而且这两条红色线段是可能上下左右移动的.
opencv怎么分别计算两条线段?for (int i = 0; i < lines->total; i++){ \x05\x05CvPoint* line = (CvPoint*)cvGetSeqElem (lines,i); \x05\x05double slope = ((double)(line[0].y - line[1].y))/((double)(line[0].x - line[1].x)); \x05\
我的一点想法:因为是多条线段,将你找到的线段用矩形轮廓包围起来,逐点扫描,利用灰度阈值(因为你已经用红色标示,我建议使用R通道)找出该矩形区域内所有灰度级别在阈值内的点,根据X坐标和Y坐标就可判断首尾坐标,因为是直线,那么x坐标最小的肯定是首,x坐标最大的肯定是尾嘛!可以自己在坐标纸上试着研究一下!逻辑上很简单的.但是我觉得霍夫变换肯定已经可以直接输出坐标了,只是你没找到对应的参数而已,否则你这条线断不可能画得出来,也就是说坐标其实已经计算了,只需要你输出就可以了.