ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅. 
ΠšΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠ΅ Π·Ρ€Π΅Π½ΠΈΠ΅

Π Π΅Ρ„Π΅Ρ€Π°Ρ‚ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

Как устроСна web-ΠΊΠ°ΠΌΠ΅Ρ€Π°. ΠŸΡ€ΠΎΠ²Π΅Ρ€Π΅Π½ΠΎ Π² 17:54, 18 Π½ΠΎΡΠ±Ρ€Ρ 2012 ΠΏΠΎ http://www.web-kamera.ru/device/. Memo1.Lines.Add (FormatDateTime ('hh:nn:ss', Now)+(`зафиксированы измСнСния ΠΏΠΎΠΏΠ΅Ρ€ΠΈΠΌΠ΅Ρ‚Ρ€Ρƒ'); RenderStream (@PIN_CATEGORY_PREVIEW, nil, Filter1asIBaseFilter, SampleGrabber1asIBaseFilter, VideoWindow1asIbaseFilter); ShowMessage (`ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΏΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°ΠΌ! Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ!'); Если ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ Ρ€Π°Π·Π½Ρ‹Π΅… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅. ΠšΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠ΅ Π·Ρ€Π΅Π½ΠΈΠ΅ (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

ΠŸΡ€ΠΈ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ испытаний ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΠΎΠΊΠ°Π·Π°Π»Π° Ρ…ΠΎΡ€ΠΎΡˆΠΈΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΈ ΡƒΠ²Π΅Ρ€Π΅Π½Π½ΠΎ опрСдСляла Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π² ΠΏΠΎΠ»Π΅ зрСния web-ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹.

ΠŸΡ€ΠΈ Π½ΠΈΠ·ΠΊΠΈΡ… настройках Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Π»Π° Π½Π° Π»ΡŽΠ±ΠΎΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰Π΅Π΅ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅: ΠΌΠΎΡ€Π³Π°Π½ΠΈΠ΅, двиТСния Π³Ρ€ΡƒΠ΄Π½ΠΎΠΉ ΠΊΠ»Π΅Ρ‚ΠΊΠΈ ΠΈ ΠΏΡ€ΠΎΡ‡Π΅Π΅. ΠŸΡ€ΠΈ высоких настройках Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π΅ Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Π»Π° Π½ΠΈ Π½Π° ΠΊΠ°ΠΊΠΈΠ΅ двиТСния.

Однако ΠΏΡ€ΠΈ нСбольшом ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΠΈ ΠΏΠΎΡ€ΠΎΠ³Π° Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΡƒΠΆΠ΅ Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Π»Π° Π½Π° ΡƒΡΠΈΠ»Π΅Π½Π½ΠΎΠ΅ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Ρ€ΡƒΠΊΠΎΠΉ. Π”Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠ΅Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° видСоизобраТСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°ΠΌΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΡΠ½ΠΈΠ·ΠΈΡ‚ΡŒ случайныС срабатывания (связанныС Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ с ΡˆΡƒΠΌΠ°ΠΌΠΈ Π² Π²ΠΈΠ΄Π΅ΠΎΠΏΠΎΡ‚ΠΎΠΊΠ΅) ΠΈ, Π² Ρ†Π΅Π»ΠΎΠΌ, ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ качСство распознавания двиТСния.

Π’Π°ΠΊ ΠΆΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π³ΠΎ «Π‘Ρ‚ΠΎΡ€ΠΎΠΆΠ°». НапримСр, Ссли Π²Ρ‹ ΠΎΡΡ‚авляСтС свой Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΡŒ ΠΏΠΎΠ΄ ΠΎΠΊΠ½ΠΎΠΌ, Ρ‚ΠΎ web-ΠΊΠ°ΠΌΠ΅Ρ€Π° Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΌΠ°ΡˆΠΈΠ½Ρƒ ΠΏΠΎΠΊΠ° Π²Ρ‹ ΡΠΏΠΈΡ‚Π΅, Π° ΡƒΡ‚Ρ€ΠΎΠΌ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ видСозапись ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ²Π΅Π» Π½ΠΎΡ‡ΡŒ Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΡŒ. Π’ΠΈΠ΄Π΅ΠΎΠ·Π°ΠΏΠΈΡΡŒ с «ΠΠΎΡ‡Π½ΠΎΠΉ смСной» спокойно умСстится Π½Π° 2−5 Π“Π± ΠΆΠ΅ΡΡ‚ΠΊΠΎΠ³ΠΎ диска.

Бписок Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹

  • 1. Π Π°Π΄ΠΈΠΎΡ‚Π΅Ρ…Π½ΠΈΠΊΠ° ΠΈ ΡΠ»Π΅ΠΊΡ‚Ρ€ΠΎΠ½ΠΈΠΊΠ°. (2010Π³). Claw.ru: тСхничСская энциклопСдия. ΠŸΡ€ΠΎΠ²Π΅Ρ€Π΅Π½ΠΎ 10:54, 18 Π½ΠΎΡΠ±Ρ€Ρ 2012 ΠΏΠΎ http://tehno.claw.ru/shared/kinder/0330.htm.
  • 2. Как устроСна web-ΠΊΠ°ΠΌΠ΅Ρ€Π°. ΠŸΡ€ΠΎΠ²Π΅Ρ€Π΅Π½ΠΎ Π² 17:54, 18 Π½ΠΎΡΠ±Ρ€Ρ 2012 ΠΏΠΎ http://www.web-kamera.ru/device/.
  • 3. ΠœΠ°ΡΡ‚Π΅Ρ€Π° DELPHI http://www.delphimaster.ru/.

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, А Π’Скст ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Unit Unit1;

interface.

uses.

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,.

Dialogs, Menus, DSPack, DSUtil, DirectShow9, StdCtrls, ExtCtrls, MPlayer;

type.

TForm1=class (TForm).

FilterGraph:TFilterGraph;

VideoWindow1:TVideoWindow;

Filter1:TFilter;

ComboBox1:TComboBox;

Label1:TLabel;

Image1:TImage;

Button1:TButton;

ButtonStopPlay:TButton;

Image2:TImage;

SampleGrabber1:TSampleGrabber;

Label3:TLabel;

Label4:TLabel;

CheckBox1:TCheckBox;

Timer1:TTimer;

Memo1:TMemo;

Label2:TLabel;

CheckBox2:TCheckBox;

MediaPlayer1:TMediaPlayer;

Procedure FormCreate (Sender:TObject);

Procedure ComboBox1Change (Sender:TObject);

Procedure Button1Click (Sender:TObject);

Procedure ButtonStopPlayClick (Sender:TObject);

Procedure Button3Click (Sender:TObject);

Procedure Button4Click (Sender:TObject);

Procedure Button5Click (Sender:TObject);

Procedure CheckBox1Click (Sender:TObject);

Procedure Timer1Timer (Sender:TObject);

private.

public.

end;

var.

Form1:TForm1;

VideoDevice:TSysDevEnum;

implementation.

procedure TForm1. FormCreate (Sender:TObject);

var.

i:integer;

begin.

VideoDevice:=TSysDevEnum.Create (CLSID_VideoInputDeviceCategory);

If VideoDevice. CountFilters > 0 then.

For i:=0 to VideoDevice. CountFilters-1 do.

ComboBox1.Items.Add (VideoDevice.Filters[i]. FriendlyName);

end;

procedure TForm1. ComboBox1Change (Sender:TObject);

begin.

FilterGraph.ClearGraph;

FilterGraph.Active:=false;

//Π—Π°Π΄Π°Π΅ΠΌ устройство с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π±ΡƒΠ΄Π΅ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ.

Filter1.BaseFilter.Moniker:=VideoDevice.GetMoniker (ComboBox1.ItemIndex);

FilterGraph.Active:=true;

//Π—Π°Π΄Π°Π΅ΠΌ Ρ‡Ρ‚ΠΎ ΠΎΡ‚ΠΊΡƒΠ΄Π° Π±ΡƒΠ΄Π΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΈ ΠΊΡƒΠ΄Π° Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ.

With FilterGraphasICaptureGraphBuilder2 do.

RenderStream (@PIN_CATEGORY_PREVIEW, nil, Filter1asIBaseFilter, SampleGrabber1asIBaseFilter, VideoWindow1asIbaseFilter);

//ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌ Π²Ρ‹Π²ΠΎΠ΄ изобраТСния.

FilterGraph.Play;

end;

procedure TForm1. Button1Click (Sender:TObject);

begin.

SampleGrabber1.GetBitmap (Image1.Picture.Bitmap);

end;

procedure TForm1. ButtonStopPlayClick (Sender:TObject);

begin.

if ButtonStopPlay. Caption= 'Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π²ΠΈΠ΄Π΅ΠΎ' then.

begin.

FilterGraph.Play;

ButtonStopPlay.Caption:=`ΠžΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π²ΠΈΠ΄Π΅ΠΎ';

end.

else.

begin.

FilterGraph.Stop;

ButtonStopPlay.Caption:='Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π²ΠΈΠ΄Π΅ΠΎ';

end;

end;

procedure TForm1. Button3Click (Sender:TObject);

var.

//i-ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π° пиксСля ΠΏΠΎ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΠΈ.

i:integer;

//j-ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π° пиксСля ΠΏΠΎ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΠΈ.

j:integer;

//ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠΉ.

k:integer;

begin.

SampleGrabber1.GetBitmap (Image2.Picture.Bitmap);

k:=0;

//Если ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΏΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρƒ, Ρ‚ΠΎ ΡΠΌΡ‹ΡΠ»Π° ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ Π½Π΅Ρ‚,.

//поэтому осущСствляСм Π²Ρ‹Ρ…ΠΎΠ΄.

if (Image1.Picture.Bitmap.WidthImage2.Picture.Bitmap.Width).

or (Image1.Picture.Bitmap.HeightImage2.Picture.Bitmap.Height).

then.

begin.

ShowMessage (`ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΏΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°ΠΌ! Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ!');

exit;

end;

//НачинаСм попиксСльноС сравнСниС.

For i:=1 to Image1.Picture.Bitmap.Height do.

begin.

for j:=1 to Image1. Pictur e.Bitmap.Width do.

begin.

//Π‘Ρ€Π°Π²Π½ΠΈΠ²Π°Π΅ΠΌ пиксСли ΠΎΠ±Π΅ΠΈΡ… ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΎΠΊ ΠΌΠ΅ΠΆΠ΄Ρƒ собой.

Ifnot (Image1.Picture.Bitmap.Canvas.Pixels[i, j]=Image2.Picture.Bitmap.Canvas.Pixels[i, j]).

Then k:=k+1;

//Π”Π°Π΅ΠΌ ΠΏΠΎΡ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌ.

Application.ProcessMessages;

end;

end;

//Если Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠΉ Π½Π΅Ρ‚ Ρ‚ΠΎ ΡΠΎΠΎΠ±Ρ‰Π°Π΅ΠΌ ΠΎΠ± ΡΡ‚ΠΎΠΌ.

If k=0 then ShowMessage (`ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹');

end;

procedure TForm1. Button4Click (Sender:TObject);

var.

K, S: integer;

r, g, b:Byte;

Color:TColor;

begin.

r:=GetRValue (K);

g:=GetGValue (K);

b:=GetBValue (K);

r:=GetRValue (S);

g:=GetGValue (S);

b:=GetBValue (S);

end;

procedure TForm1. Button5Click (Sender:TObject);

var.

//i-ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π° пиксСля ΠΏΠΎ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΠΈ.

i:integer;

//j-ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π° пиксСля ΠΏΠΎ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΠΈ.

j:integer;

//ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠΉ.

k:integer;

o:integer;

r, g, b:Byte;

Color:TColor;

S:integer;

begin.

Image1.Picture.Bitmap.Monochrome:=true;

SampleGrabber1.GetBitmap (Image1.Picture.Bitmap);

exit;

//ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠΉ.

For i:=1 to Image1.Picture.Bitmap.Height do.

For j:=1 to Image1.Picture.Bitmap.Width do.

begin.

K:=Image1.Picture.Bitmap.Canvas.Pixels[i, j];

r:=GetRValue (K);

g:=GetGValue (K);

b:=GetBValue (K);

b:=r;g:=r;

K:=RGB (r, g, b);

end;

end;

procedure TForm1. CheckBox1Click (Sender:TObject);

begin.

if CheckBox1. CheckedthenTimer1.Enabled:=true.

else Timer1. Enabled:=false;

end;

procedure TForm1. Timer1Timer (Sender:TObject);

var.

//i-ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π° пиксСля ΠΏΠΎ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΠΈ.

i:integer;

//j-ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π° пиксСля ΠΏΠΎ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΠΈ.

j:integer;

//ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠΉ.

k:integer;

r1,g1,b1:Byte;

r2,g2,b2:Byte;

FirstColor, SecondColor: Integer;

Color:TColor;

PriznakChange:byte;

begin.

//Π”Π΅Π»Π°Π΅ΠΌ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ снимок.

If Timer1. Tag=0 then.

begin.

SampleGrabber1.GetBitmap (Image1.Picture.Bitmap);

Timer1.Tag:=1;

exit;

end;

//Π§Π΅Ρ€Π΅Π· Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя Π²Ρ‚ΠΎΡ€ΠΎΠΉ, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π±ΡƒΠ΄Π΅ΠΌ ΡΠ²Π΅Ρ€ΡΡ‚ΡŒ SampleGrabber1. GetBitmap (Image2.Picture.Bitmap);

Timer1.Tag:=0;

k:=0;

//Если ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΏΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρƒ, Ρ‚ΠΎ ΡΠΌΡ‹ΡΠ»Π° ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ Π½Π΅Ρ‚,.

//поэтому осущСствляСм Π²Ρ‹Ρ…ΠΎΠ΄.

if (Image1.Picture.Bitmap.WidthImage2.Picture.Bitmap.Width).

or.

(Image1.Picture.Bitmap.HeightImage2.Picture.Bitmap.Height).

then.

begin.

//ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΏΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°ΠΌ! Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ!'.

exit;

end;

//НачинаСм попиксСльноС сравнСниС.

For i:=1 to Image1.Picture.Bitmap.Height do.

begin.

for j:=1 to Image1.Picture.Bitmap.Width do.

begin.

//ΠžΠ±Π½ΡƒΠ»ΡΠ΅ΠΌ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊ измСнСния.

PriznakChange:=0;

//ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Ρ†Π²Π΅Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ пиксСля ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ FirstColor:=Image1.Picture.Bitmap.Canvas.Pixels[i, j];

//ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ RGB.

r1:=GetRValue (FirstColor);

g1:=GetGValue (FirstColor);

b1:=GetBValue (FirstColor);

//ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Ρ†Π²Π΅Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ пиксСля Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ SecondColor:=Image2.Picture.Bitmap.Canvas.Pixels[i, j];

//ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ RGB.

r2:=GetRValue (SecondColor);

g2:=GetGValue (SecondColor);

b2:=GetBValue (SecondColor);

//ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ RGB.

If Abs (r1-r2)>20 then inc (PriznakChange);

If Abs (g1-g2)>20 then inc (PriznakChange);

If Abs (b1-b2)>20 then inc (PriznakChange);

//НачинаСм ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ двумя ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ°ΠΌΠΈ.

If PriznakChange=3 then k:=k+1;

//Если измСнСния сущСствСнныС, Ρ‚ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅ΠΌ счСтчик.

Application.ProcessMessages;

end;

end;

//Π”Π°Π΅ΠΌ ΠΏΠΎΡ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌ.

If k>2000 then.

begin.

Memo1.Lines.Add (FormatDateTime ('hh:nn:ss', Now)+(`зафиксированы измСнСния ΠΏΠΎΠΏΠ΅Ρ€ΠΈΠΌΠ΅Ρ‚Ρ€Ρƒ');

//Если ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ большС 2000 (Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΎ ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΡƒΡ‚Π΅ΠΌ) Image2.Picture.Bitmap.SaveToFile ('log'+FormatDateTime ('hhnnss', Now)+'.jpeg');

If CheckBox2. Checked=true then.

begin.

MediaPlayer1.FileName:='C:shvvSIGNAL.wav';

MediaPlayer1.Open;

MediaPlayer1.Play;

end.

else MediaPlayer1. Stop;

end;

end;

end.

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π‘ Π’Π½Π΅ΡˆΠ½ΠΈΠΉ Π²ΠΈΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅. ΠšΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠ΅ Π·Ρ€Π΅Π½ΠΈΠ΅.
ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ