请问:如何得到BMP图像上某一特定区域?(200分)(100分)

  • 主题发起人 主题发起人 snowsky
  • 开始时间 开始时间
S

snowsky

Unregistered / Unconfirmed
GUEST, unregistred user!
说明:此区域为黑色,位置不固定,大小固定。

图片格式为BMP格式。

请问有什么办法可以得到这个区域的位置?

我主要是用这张图片来做窗口,然后在黑色区域内显示我要显示的东西,可是我无法得到
它的具体位置。
 
不知你这幅图像的背景是什么,如果实时进行检测这个黑框行的通吗?
我觉得如果这个黑框是绝对黑的话(我是指象素值为0),并且其大小固定,
实时检测应该容易进行。
如果这个黑框的位置的变化,没有倾斜变化的话。
(我是指它的边的方向与图像的四边平行)
 
它的方向是不会变的是标准的长方形.和图像的四边平行的.图像的背景色不是黑色,是另一
种颜色.

能给个提示的算法吗?

这先放了100分,结题的时候再放100分.
 
for i:=0 to imageHeight-1 do
begin
arrayimg := image.scanline;
for j:=0 to imageWidth-1 do
if arrayimg[j]=0 then
......
end;

此代码保证不能直接使用,但可以参考一下:)
用Scanline可以得到一整行的值,事实上,黑色的值是0(如果我没记错的话,白色是FFFF)
因为你知道大小,所以,你只要判断一个连继续几个点的色值是0,如果是,则该行的第一个
点就是你要的位置(左上角坐标)
 
谢谢wwolf,我参考你的方法算出了位置。给您100分。
 
不是有200分嘛:(
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
900
SUNSTONE的Delphi笔记
S
后退
顶部