实心矩形图像识别有关问题,期待!

实心矩形图像识别问题,期待!!!
大家好,我想在图像中找到一个矩形的位置,矩形是黑色实心的。图像是白纸黑字扫描成的。角度无法固定。
请问,无论何种角度扫描,我怎么找到矩形的位置。包括矩形的长宽,对角线坐标,越详细越好!!

------解决方案--------------------
图上除了“黑色实心的矩形”还有什么?
------解决方案--------------------
贴张图出来看看
------解决方案--------------------
楼主去年的帖子还没结呢.

你要的是机器视觉,这一课题不是很简单,类似以前我见过的一套PCB自动抄板软件,卖价15W.

只需要给出一张无元件的单或双面PCB正反面的照片,它会自动生成PRETOL99的PCB图格式,很牛的.

具体原理没有研究过,帮顶吧.
------解决方案--------------------
  楼主想得太简单了.
------解决方案--------------------

由于已知仅有一个矩形,问题没有“人工视觉”那么复杂。

逐行扫描,将结果分为两种情况。

1 矩形是水平的。此情况下,每行黑色点的起始坐标相同。取得起始 X 坐标、起始 Y 坐标、终止 X 坐标、终止 Y 坐标,就可以得到四角坐标。

2 矩形是倾斜的。这样每行的 X 起始坐标会不同。此情况下只要取得最高点、最低点、最左点,最右点坐标,就是矩形的 4 个顶点。剩下的都是简单的解析几何计算。

需要考虑的是,扫描中的近似处理。因为扫描所得的点,与数学理想的点会有误差。

------解决方案--------------------


图像如上:
我是教师,想做个用数码技术识别机读卡的软件。我想检测出边框四条直线的方程,
我用hough变换检测出来很慢,没有多大的使用价值!
------解决方案--------------------
Option Explicit
  Private Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long
    
  Const Pi = 3.14159265358979
  Private Type Myline
      topx   As Integer
      topy   As Integer
      botx   As Integer
      boty   As Integer
  End Type
    
    
  Private Sub Command1_Click()
  Dim bmWidth     As Long
  Dim bmHeight     As Long
  Dim Dc     As Long
  Dim MaxLength     As Long, Alpha       As Integer
  Dim i     As Long, j       As Long, m       As Long, Length       As Long
  Dim IpMyLine()     As Myline, lpDistAlpha()       As Long, maxd       As Long
  Dim MaxdLine     As Myline, secondmaxd       As Myline, midvalue()       As Long
    
  bmWidth = Picture1.Width / Screen.TwipsPerPixelX
  bmHeight = Picture1.Height / Screen.TwipsPerPixelY
  Dc = Picture1.hdc
    
  MaxLength = CLng(Sqr(bmWidth * bmWidth + bmHeight * bmHeight) + 0.5)
    
  Alpha = 180
  ReDim IpMyLine(MaxLength * Alpha) As Myline
  ReDim lpDistAlpha(0 To MaxLength * Alpha) As Long