Рефераты. Система автоматизированного анализа пространственной структуры изображений. Подсистема линейной сегм...

Результат кодирования сегментов

Рис. П.2.10

После работы с изображением исходный массив точек может быть сохранен в файл, для этого следует воспользоваться пунктами «Сохранить массив» или «Сохранить файл» в меню «Файл» для сохранения в файл массива точек или в файл формата BMP соответственно. При выборе этих пунктов будет вызван стандартный диалог для сохранения файла, где следует указать имя сохраняемого файла и нажать кнопку «Сохранить».

После работы с программой для корректного ее завершения следует использовать пункт «Выход» в меню «Файл» (рис. П.2.11) или использовать стандартную пиктограмму закрытия окна. При этом будет выдан запрос на подтверждение выхода из программы (рис. П.2.12). Во избежание потери данных при выходе из программы следует убедиться, что все необходимые данные сохранены.


Выход из программы

Рис. П.2.11


Запрос на подтверждение выхода

Рис. П.2.12

П.2.5. Сообщения оператору


Сообщения, выдаваемые при работе с программой и действия, которые необходимо выполнить при их получении, приведены в таблице П.2.1.

Таблица П.2.1

Сообщения, выдаваемые при работе программы  и необходимые действия при их получении


Сообщение

Описание

Действия

1

2

3

Размер нового изображения

Программа предлагает выбрать размер вновь создаваемого изображения в точках

Ввести значение ширины и высоты изображения

Неверно указано число

Введенное число не соответствует заданному формату

Ввести корректное число

Выход ?

Запрос на подтверждение выхода из программы. Не сохраненные данные могут быть утеряны

Подтвердить или опровергнуть запрос на выход

Невозможно открыть файл

Произошла ошибка при попытке открыть указанный файл

Проверить наличие файла и доступа к нему

Невозможно сохранить файл

Произошла ошибка при попытке сохранить указанный файл

Проверить наличие доступа к указанному пути.

Файл уже  существует. Перезаписать ?

Файл с именем, указанным для сохранения, уже существует

Подтвердить запрос на перезапись или выбрать другое имя файла

Настройка

Вызван диалог настройки программы

Выполнить необходимые действия по настройке, затем нажать кнопку «ОК» для сохранения изменений или кнопку «Отмена» для их отмены

Не выполнен поиск узлов

При пошаговой обработке была вызвана процедура поиска сегментов прежде чем был выполнен поиск узлов

Сначала необходимо выполнить поиск узлов, а затем выполнять поиск сегментов

Не выполнен поиск сегментов

При пошаговой обработке была вызвана процедура кодирования сегментов прежде чем был выполнен поиск сегментов

Сначала необходимо выполнить поиск сегментов, а затем выполнять их кодирование


ПРИЛОЖЕНИЕ 3

ТЕКСТ ПРОГРАММЫ


П.3.1. Текст модуля lineseg.h

//---------------------------------------------------------------------------


#ifndef LineSegH

#define LineSegH

//---------------------------------------------------------------------------

#include <Classes.hpp>

#include <Controls.hpp>

#include <StdCtrls.hpp>

#include <Forms.hpp>

#include <ActnList.hpp>

#include <Menus.hpp>

#include <Dialogs.hpp>

#include <Graphics.hpp>

#include <ExtCtrls.hpp>

#include <ComCtrls.hpp>

#include <ToolWin.hpp>

#include <ImgList.hpp>

#include <CustomizeDlg.hpp>

//---------------------------------------------------------------------------

class TfrmLineSeg : public TForm

{

__published:         // IDE-managed Components

TStatusBar *sb1;

TPanel *Panel1;

TScrollBox *scb1;

TImage *Image1;

TImage *Image2;

TMainMenu *MainMenu1;

TMenuItem *N1;

TMenuItem *N3;

TMenuItem *N5;

TMenuItem *N4;

TMenuItem *N2;

TMenuItem *N6;

TMenuItem *N10;

TMenuItem *N11;

TMenuItem *N12;

TMenuItem *N1001;

TMenuItem *N10x1;

TMenuItem *N9;

TActionList *ActionList1;

TAction *actExit;

TAction *actOpenFile;

TAction *actSaveFile;

TAction *actNewFile;

TAction *actZoomIn;

TAction *actZoomOut;

TAction *actZoom1;

TAction *actZoom10;

TAction *actAnalyze;

TAction *actGridCheck;

TAction *actLightCheck;

TOpenDialog *OpenDialog1;

TSaveDialog *SaveDialog1;

TImageList *ImageList1;

TCoolBar *CoolBar1;

TToolBar *ToolBar1;

TToolBar *ToolBar2;

TToolBar *ToolBar3;

TToolButton *ToolButton1;

TToolButton *ToolButton2;

TToolButton *ToolButton3;

TToolButton *ToolButton4;

TToolButton *ToolButton5;

TToolButton *ToolButton6;

TToolButton *ToolButton7;

TToolButton *ToolButton8;

TToolButton *ToolButton13;

TToolButton *ToolButton14;

TAction *actLineLightCheck;

TToolButton *ToolButton11;

TToolButton *ToolButton10;

TAction *actSegLightCheck;

TSplitter *Splitter1;

TPanel *Panel2;

TMemo *MemoLog;

TMemo *MemoOut;

TSplitter *Splitter2;

TToolButton *ToolButton12;

TAction *actLockView;

TToolButton *ToolButton16;

TMenuItem *N8;

TMenuItem *N16;

TMenuItem *N17;

TMenuItem *N18;

TToolButton *ToolButton17;

TAction *actAnalyzeNode;

TAction *actAnalyzeSeg;

TToolButton *ToolButton9;

TAction *actMatchLines;

TToolButton *ToolButton18;

TToolButton *ToolButton20;

TAction *actZoomWnd;

TMenuItem *N19;

TToolButton *ToolButton21;

TAction *actMatchOut;

TMenuItem *N7;

TMenuItem *N22;

TAction *actOpenArray;

TAction *actSaveArray;

TMenuItem *N23;

TMenuItem *N24;

TToolButton *ToolButton22;

TToolButton *ToolButton23;

TMemo *mArray;

TAction *actOptions;

TMenuItem *N13;

TToolButton *ToolButton15;

TToolButton *ToolButton19;

TLabel *Label1;

TLabel *Label2;

TToolButton *ToolButton24;

TMenuItem *N14;

TAction *actSaveCode;

TMenuItem *N20;

TToolButton *ToolButton25;

TToolButton *ToolButton26;

TToolButton *ToolButton27;

TAction *actSegCodeOut;

TMenuItem *N15;

void __fastcall actExitExecute(TObject *Sender);

void __fastcall FormCreate(TObject *Sender);

void __fastcall actZoomInExecute(TObject *Sender);

void __fastcall actZoomOutExecute(TObject *Sender);

void __fastcall actOpenFileExecute(TObject *Sender);

void __fastcall actSaveFileExecute(TObject *Sender);

void __fastcall Image2MouseMove(TObject *Sender, TShiftState Shift,

int X, int Y);

void __fastcall Image2MouseDown(TObject *Sender,

TMouseButton Button, TShiftState Shift, int X, int Y);

void __fastcall actZoom1Execute(TObject *Sender);

void __fastcall actAnalyzeExecute(TObject *Sender);

void __fastcall FormCanResize(TObject *Sender, int &NewWidth,

int &NewHeight, bool &Resize);

void __fastcall actNewFileExecute(TObject *Sender);

void __fastcall actGridCheckExecute(TObject *Sender);

void __fastcall actLightCheckExecute(TObject *Sender);

void __fastcall actZoom10Execute(TObject *Sender);

void __fastcall actLineLightCheckExecute(TObject *Sender);

void __fastcall actSegLightCheckExecute(TObject *Sender);

void __fastcall actLockViewExecute(TObject *Sender);

void __fastcall actAnalyzeNodeExecute(TObject *Sender);

void __fastcall actAnalyzeSegExecute(TObject *Sender);

void __fastcall actMatchLinesExecute(TObject *Sender);

void __fastcall FormCloseQuery(TObject *Sender, bool &CanClose);

void __fastcall actZoomWndExecute(TObject *Sender);

void __fastcall actMatchOutExecute(TObject *Sender);

void __fastcall actOpenArrayExecute(TObject *Sender);

void __fastcall actSaveArrayExecute(TObject *Sender);

void __fastcall actOptionsExecute(TObject *Sender);

void __fastcall actSaveCodeExecute(TObject *Sender);

void __fastcall actSegCodeOutExecute(TObject *Sender);

private:        // User declarations

void ZoomTo(double z);

void DrawGrid();

void ShowInfo(int X, int Y);

int __fastcall NeigCount(int x, int y);

int VectMove(int &x, int &y, int vect);

void wlog(AnsiString s);

AnsiString VectToStr(int v);

void ValidateView();

double plDistance(double x,double y,double x1,double y1,double x2,double y2);

// plDistance вычисляет расстояние (минимальное) от точки (x,y)

// до прямой, заданной точками (x1,y1) и (x2,y2)

AnsiString StrToLen(AnsiString str, int len);

// StrToLen возвражает строку длины len

// заполняя пробелями недостающие символы в начале строки str

void __fastcall NeigNode(int x, int y, int n);

// NeigSeg обрабатывает соседей точки (x,y)

// на принадлежность узлу n

// является рекурсивной

void __fastcall NeigLine(int x,int y, int n);

// NeigLine обрабатывает соседей точки (x,y)

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.