有什么控件可以将图二值化?(10分)

  • 主题发起人 主题发起人 wincomputer
  • 开始时间 开始时间
W

wincomputer

Unregistered / Unconfirmed
GUEST, unregistred user!
有什么控件可以将图二值化,各请提些好的建议。
 
没有人用过这样的控件吗?
 
二值化还用找控件

function duoval(const bitmap: tbitmap): tbitmap;
var
i, j: integer;
RowOriginal, RowProcessed: prgbtriplearray;
grayval: integer;
begin
RESULT := TBitmap.Create;
RESULT.Width := bitmap.Width;
RESULT.Height := bitmap.Height;
bitmap.PixelFormat := pf24bit;
RESULT.PixelFormat := bitmap.PixelFormat;

for j := 0 to bitmap.Height - 1 do
begin
RowOriginal := bitmap.ScanLine[j];
RowProcessed := result.ScanLine[j];
for i := 0 to bitmap.Width - 1 do
begin
grayval := (77 * RowOriginal.rgbtRed + 151 * RowOriginal.rgbtGreen + 28 * RowOriginal.rgbtBlue) shr 8;
if grayval > 128 then
begin
RowProcessed.rgbtRed := 255;
RowProcessed.rgbtGreen := 255;
RowProcessed.rgbtBlue := 255;
end
else
begin
RowProcessed.rgbtRed := 0;
RowProcessed.rgbtGreen := 0;
RowProcessed.rgbtBlue := 0;
end;
end;
end;
end;
 
多谢你的源代码,有时图点的一些近黑灰点会二值后会消失。
 
prgbtriplearray 这个类型是从哪里来的?
 
Const
MaxPixelCount = 65536;
Type
pRGBTripleArray = ^TRGBTripleArray;
TRGBTripleArray = Array[0..MaxPixelCount - 1] Of TRGBTriple;
 
to wincomputer,
多谢你的源代码,有时图点的一些近黑灰点会二值后会消失。

不可能吧??改改伐值看看?
 
问题解决!
多谢各位参与
 
后退
顶部