ͼÏñµÄÖÐÖµÂ˲¨£¬¾ÍÊÇÔÚÒÔijһÏñËØÎªÖÐÐĵÄn½×ÏñËØ¾ØÕóÖУ¬ÕÒ³öR¡¢G¡¢B¸÷·ÖÁ¿µÄÖмäÖµÀ´·Ö±ðÌæ´ú¸ÃÏñËØµÄRGBÖµ£¬´Ó¶ø´ïµ½¶ÔͼÏñÔëÉùÂ˲¨µÄÄ¿µÄ¡£ÕâÀïµÄÖмäÖµ²¢·ÇÏñËØ¾ØÕóR¡¢G¡¢B¸÷·ÖÁ¿µÄµÄËãÊõƽ¾ùÖµ£¬¶øÊÇÏñËØ¾ØÕóR¡¢G¡¢B¸÷·ÖÁ¿ÅÅÐòºóµÄÖÐλÊýÖµ¡£
ÏÂÃæÊÇDelphiͼÏñÖÐÖµÂ˲¨µÄʵÏÖ´úÂ룺
¹ý³Ì¶¨Ò壺
// ÖÐÖµÂ˲¨¡£SizeÓ¦ÎªÆæÊý
procedure ImageMedianValues(Data: TImageData; Size: LongWord);
ʵÏÖ´úÂ룺
procedure ImageMedianValues(Data: TImageData; Size: LongWord);
var
matrixOffset, srcOffset, dstOffset: LongWord;
Width, Height: LongWord;
mSize, Count: LongWord;
src: TImageData;
Top, Last, Median: PLongWord;
Colors: array of LongWord;
procedure AssortValue;
asm
mov ah, [esi]
mov al, [esi + 4]
mov dl, [esi + 8]
cmp ah, al
jae @@1
xchg ah, al
@@1:
cmp ah, dl
jae @@2
xchg ah, dl
@@2:
cmp al, dl
jbe @@3
xchg al, dl
@@3:
mov [edi], ah
mov [edi + 4], dl
mov [edi + 8], al
inc esi
inc edi
end;
procedure GetValue;
asm
mov ah, [esi]
mov dh, [esi + 4]
mov dl, [esi + 16]
mov al, [esi + 8]
cmp ah, [esi + 12]
jbe @@1
mov ah, [esi + 12]
@@1:
cmp ah, [esi + 24]
jbe @@2
mov ah, [esi + 24]
@@2:
cmp dh, dl
jae @@3
xchg dh, dl
@@3:
cmp dh, [esi + 28]
jae @@4
xchg dh, [esi + 28]
@@4:
cmp dl, [esi + 28]
jae @@5
mov dl, [esi + 28]
@@5:
cmp al, [esi + 20]
jae @@6
mov al, [esi + 20]
@@6:
cmp al, [esi + 32]
jae @@7
mov al, [esi + 32]
@@7:
cmp ah, al
jae @@8
xchg al, ah
@@8:
cmp ah, dl
jae @@9
xchg ah, dl
@@9:
cmp al, dl
jae @@10
mov al, dl
@@10:
mov
DelphiµÄTCanvasÒÔ¼°ÅÉÉúÀàÌṩÁËÏÔʾTGraphicͼÏñµÄ·½·¨Draw£¬ÆäʵÕâ¸ö·½·¨±¾Éí²¢Ã»ÓÐÏÔʾͼÏñµÄ¹¦ÄÜ£¬Ö»ÊÇ·´¹ýÀ´µ÷ÓÃÁËÒ»ÏÂTGraphicµÄDraw·½·¨¡£TGraphic±¾ÉíÊǸö³éÏóÀ࣬ÆäDraw·½·¨Ò²ÊǸö´¿Ðé·½·¨£¬ËùÒÔTGraphicµÄËùÓÐÅÉÉúÀà±ØÐëÌṩһ¸ö¾ßÌåµÄDraw·½·¨¡£TGraphicµÄÖ÷ÒªÅÉÉúÀàTBitmapÒ²ÓÐÒ»¸öDraw·½· ......
ÉèÖÃͼÏñ¹Ø¼üÑÕÉ«£¬Ê¹Í¼ÏñµÄijÖÖ»òij¸ö·¶Î§µÄÑÕÉ«³ÉΪ͸Ã÷É«£¬ÊÇͼƬºÏ³É¡¢¶¯»ÏÔʾÖо³£ÓõÄͼÏñ´¦ÀíÊֶΡ£ÏÂÃæÊÇʵÏÖ´úÂ룺
¹ý³Ì¶¨Ò壺
// ÉèÖÃÉ«¼ü£¨Í¸Ã÷·¶Î§£©¡£colorLow µÍÉ«¼üÖµ; colorHigh ¸ßÉ«¼üÖµ
// µ±ÏñËØA¡¢R¡¢G¡¢Bֵͬʱ´óÓÚµÈÓÚcolorLowºÍСÓÚµÈÓÚcolorHighʱΪ͸Ã÷É«
procedu ......