高分求几个图形判断模块.(200分)

  • 主题发起人 主题发起人 Turbo Delphi
  • 开始时间 开始时间
T

Turbo Delphi

Unregistered / Unconfirmed
GUEST, unregistred user!
要求几个函数.
判断直线.
判断三角形.
判断矩形,
判断梯形,回答的越详细给越多分,分不够可以开号过分.
 
又是一个要让人猜想才有可能弄明白题目意思的题目,
我觉得学编写程序之前, 应该先学好语文
 
晕,就是能识别图片里的各种几何形状.
 
现在做图形识别的人怎么那么少了?
 
你的前提已知条件是什么?是图形识别不是图像识别吧?

判断直线逐点计算斜率就可以了。
判断三角形,如果是三个点就可以了;如果是四个点,第一和第四点重合也算。
至于矩形,先计算点数,四个点或五个点都可以(首尾点相同),然后逐三个点计算斜率,是直角就行。

以下是计算斜率的函数,返回是“弧度”,供参考:

//参数为两个点的坐标
function GetDirection(X1,Y1,NX,NY : double):Double;
var
BufLen,Direction : Double;
begin
BufLen := Sqrt(Sqr(X1-NX)+Sqr(Y1-NY));
if (Abs(NX-X1)< 10e-300) then begin
if (Abs(Y1-NY)< 10e-300) then begin
//等于没有移动}
end
else begin
if (Y1-NY)>0 then Direction := PI/2
else Direction := 3*PI/2;
end;
end
else begin
if ArcTan((Y1-NY)/(NX-X1))>0 then begin
if (Sin((Y1-NY)/BufLen)>0) then
Direction := ArcTan((Y1-NY)/(NX-X1))
else
Direction := ArcTan((Y1-NY)/(NX-X1))+PI;
end
else begin
if (Sin((Y1-NY)/BufLen)>0) then
Direction := ArcTan((Y1-NY)/(NX-X1))+PI
else begin
Direction := ArcTan((Y1-NY)/(NX-X1));
if (Direction = 0) and (X1 > NX) then Direction := PI;
end;
end;
end;
Result := -Direction;
end;
 
吕雪松:谢谢你回答我的问题,我现在有几点不是很清楚
以前数学几何公式都还给老师了.
我要识别的是二值化后的图片.
 
二值化后就是黑白图了,应该算是图像识别了。那我的这些函数就帮不了你。

你可以通过像素递归来计算,二值化的还算不是很难。
 
郁闷.茫茫人海,找不到一个能帮我的.
是不是以后娶老婆要娶个做ORC的才行?
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部