delphi完美经典--第五、六章

第五章 常用的指令介绍

一、TCanvas:此类提供了一个抽象的绘图空间给需要贴图的对象使用。除了可贴图外,还可输出文字。TForm有Canvas属性:Form1.Canvans.TextOut(100, 100, 'abc');

二、InputBox函数:弹出一个可输入文字的对话框。Edit1.Text := InputBox(‘InputBox Example’, ‘请输入密码:’, ‘007’);

三、functionMessageDlg(const Msg:string;         //要显示的信息

DlgType:TmsgDlgType;    //MsgDlg类型,如mtConfirmation、mtError等。(mt—msgtype)

Buttons:TmsgDlgButtons;       //要显示的按钮,如MbYes、MbNo等。(Mb—msgbutton)

HelpCtx:Longint):Word;  //在对话框上按下F1时的说明。一般为0.

返回值:如mrYes、mrOk、mrNo等。(mr—msgreturn)

第六章 Delphi与ObjectPascal程序的基本概念

三、数据类型与定义变量

Object Pascal是一个类型严谨的程序语言,即它为数据类型作了许多区别,因此有时候不允许用一种类型数据去替代另一种数据类型。

当然也有办法让你回避类型最严谨的地方,其方法有以下几种:类型转换、指针类型、记录类型里的变量和变量的绝对寻址。

1、声明集合类型:

type

  WorkDay = (Monday, Wednesday, Thursday,Friday);


Delphi中也存在跨平台的问题:将类型分为基本类型和通用类型。基本类型即ANSI还是Unicode,通用类型则指如C++中的Tchar。跨平台时,由于Tchar与平台相关,所以不能用。

2、非自定义类型介绍

1)字符类型:AnsiChar和WideChar。通用类型是char类型。

2)整数类型

基本整数类型:


通用整数类型:


3)布尔类型:

分四种:Boolean、ByteBool、WordBool、LongBool。区别:后三个是为了跨平台使用。所占空间分别是:1、1、2、4Byte。在delphi中布尔型和整数型不能自动转换。

4)实数类型:

基本实数类型:Rcal48、Single、Double、Extended、Comp和Currency六种,而每种类型的范围和保存格式都不大相同。


Real48:与旧的Delphi版本兼容,但其保存格式非Intel系列CPU直接支持,所以比其他类型慢。

Extended:精度高,但移植性差。

Comp:若可以的话,尽量用Int64替代此类型。

Currency:一种小数点固定的数据类型。当与其他实数类型值一起使用或被赋值为其他实数类型的值时,此类型的值会自动乘或除以10000。

通用实数类型:


5)字符串类型:


ShortString:字符串长度255,虽然最大可,256Byte空间,但其第一个字符时用来记录该字符的长度,因而此类型的字符串最小需占2Byte。

AnsiString:是一个只占4Byte内存空间的指针。其值的长度只受可用内存空间的限制。

WideString:一般仅当COM编程时用。

6)变体类型:

Variant类型可存放各种类型的值,除了下列类型:Record、Set、Static Array、File、Class、Class Reference、Pointer及Int64。虽可存放各种类型,但其所占空间固定:16Byte。

2、必须用type声明的数据类型

1)枚举类型

语法:type 枚举类型名称 = (值1, 值2, ……, 末值);

对枚举类型,一旦声明后,此枚举类型的任一元素,都不能再重复被声明为其他枚举类型的元素之一。

2)子范围

子范围的值,是某种类型的值的一部分。即它的值不能凭空自定义。语法:

type 子范围类型名称 = 起始值……终点值;

3)集合类型

集合类型是一组相同类型的变量的集合。语法:

type 集合类型名称 = set of 基数类型;集合类型的变量,可存放重复的值。

4)数组类型:参考6-6节数组与指针

5)记录类型

由不同类型的成员组成的集合,在声明记录类型时,必须定义每个成员的类型。语法:

type 记录类型名称 = record

        第一个成员名称 : 类型名称;

        ……

        最后一个成员名称 : 类型名称;

end;

4、定义变量

标识符的命名规则

Ø  长度无限制,然而只有前面256个字符有用。

Ø  由英文字符、数字和下划线组成,但第一个字符必须是英文字符或下划线

Ø  不能包含空格

Ø  不能是保留字

A, B, C : Integer; 此种方式定义时无法在定义时初始化。

定义常量,如

const

  MyCount = 34;     //定义常量时,定义时必须初始化。有时可省略类型。

  MyName:string = ‘Color’;

变量的类型转换:

1)自动转换:一般只限于同类型的转换。何为同类型,如Integer同类型的类型有:ShortInt、Int64、Byte等。语法:变量A名称 := 变量B名称;

2)强制类型转换:变量A名称 := 变量A的类型(变量B名称);

3)函数类型转换:如IntToStr之类的。

5、ObjectPascal的运算符

算数运算符:+、-、*、div(除,取商。对整数)、/(除,取商)、mod(除,取余数)

关系运算符:=、<>、<、>、<=、>=

布尔运算符:not、and、or、xor(异或、互斥:当左右两边的操作数的值互斥时,返回值才为True)

集合运算符:专门用来处理集合类型的操作数,集合运算符有些和关系运算符采用相同的符号,但作用不同,使用时必须分清操作数的类型。

运算符

作用

可处理操作数类型

返回类型(结果)

+

并集

set

set

-

差集

set

set

*

交集

set

set

<=

包含于

set

Boolean

>=

包含

set

Boolean

=

等于

set

Boolean

<> 

不等于

set

Boolean

in

属于

左ordinal、右set

Boolean

并交差集要删除重复的元素。in判断一个数是否在一个集合中。>=用来判断左边操作数的值是否包含了右边操作数全部的值。<=用来判断左边操作数的值是否被右边操作数的值所包含。对<=和>=必须全部包含才为True,有一个没被包含就为False。=用来判断左右操作数的值是否完全相等,<>完全相反。

关系运算符:关系运算符中的=、<>、>=、<=、>、<都可用来处理字符串,比较的是从第一个字符开始的ASCII码。字符串运算符有+但无—。

位逻辑运算符:not(对位取反)、and、or、xor、shl(对位的左移)、shr(对位的右移)。shl和shr都是2元操作符,左边的变量表明要对移位的值,右边的变量表示要移动的位数有几个。

运算符优先级:


6、流程控制

1)case……of……(多向分支)

case  选项表达式  of

选项表达式1(值) : 语句1;

……

选项表达式N(值) : 语句N; 

(else

语句; )

end;

case表达式既可以是整型也可是任何其他类型。因delphi有可以表示范围的方法。所以,可以:

case m1 of

  5..7:

begin end;

  2, 3, 4:

begin end;

  4..8, 1:

    begin end;

2)循环语句

①for循环:需明确指明要重复的次数,计数变量的间距固定,是1,若要更改,只能自己在循环体语句里控制。

for 计数变量 := 起始值 to 终点至 do//for计数变量 := 起始值 downto 终点至 do

for  X := 1 to 10 do

begin

  Sum := Sum + X;

end;

②while循环语句:非明确决定重复执行的次数,而是用条件来控制是否要继续执行。

while 布尔表达式 do

③repeat循环语句:同while循环一样,是用条件来控制是否继续循环。区别是先执行循环体,后判断条件,条件为真时,停止循环。

repeat

  循环体语句

until 布尔表达式;

3)标签与跳转语句:label和goto实现,勿用。

4)汇编语句:objectpascal支持使用汇编,以asm始以end;终。

7、数组与指针

1)  数组类型:一组位置连续且类型相同的数据的集合。数组名代表某块内存空间的地址。

①  数组类型既可直接在var区定义一个数组;也可先在type区声明一个数组类型,然后再在var区定义数组变量或常量。注意type区时:类型名称 = array[索引的类型] of 基数类型;是‘=’ var区时是‘:’。不只数组有这个特性,其他类型也都有这个特性。

②    静态数组:静态数组即声明时已确定了数组的大小。

一维静态数组的声明:类型名称 = array[索引的类型] of 基数类型;TheAnwser = array[Boolean] of Char;此数组只有两个元素:TheAnswer[true]、TheAnswer[false]。索引类型用来确定数组元素个数。多维数组的定义有两种形式:类型名称 = array[索引的类型1…索引的类型N] of 基数类型;类型名称 = array[索引类型] of array[索引类型] of 基数类型;

③    动态数组:在设置元素值给数组时,才决定此数组的大小。动态数组的索引类型一律为整型,且从0开始。而动态数组元素的数量,必须通过SetLength来设置。给元素赋值前必须先设置其数组元素数量。

一维动态数组的声明:类型名称 = array of 基数类型;多维动态数组的声明:类型名称 = array of array of 基数类型;设置大小:SetLength(数组名, 一维大小, …N维大小);

④    相关函数:Low和High。分别返回数组的上下限,即数组索引的最小值和最大值。

2)  指针类型

①    声明和定义:type区的指针类型名称 = ^类型名称;或者var区的指针类型名称 : ^类型名称;若类型名称本身是指针类型,则不能加‘^’;若非指针类型,则须加‘^’。

②    寻址操作(即取得指针所指地址的值):指针变量名称后加‘^’,不同于C++。

③    字符指针:可用来操作null-terminated string(以NULL即‘#0’为结束标志)。

基本的字符指针类型:PAnsiChar和PWideChar。通用的字符指针类型:PChar。这三种特殊的指针类型可使用‘+’、‘-’运算符。字符指针的加减是移位操作。

A:Pchar; A := A+2;

④    Addr和Ptr函数:Addr作用同‘@’。Ptr是将地址转换为指针,仅当已知地址值时才函数才有用。

8、程序与函数

1)参数的传递方式:传值、传址、out。区别:①声明或定义时,传址方式在变量前加一个保留字“var”。②调用函数时,传址方式的参数必须是变量名而不能是某个值。③out参数,相当于C++中的引用。使用方式:在参数名前加“out”。

    常量参数:值传递,只是在程序内部不可更改常量参数的值。语法:参数名前加“const”。

数组参数:函数声明或定义的语句内,不能有数组索引。所以对于静态数组,必须先在type区声明类型,再用此类型定义函数的参数。而对动态数组,则不必如此麻烦,可直接声明。这些说的都是形参,而对实参则无任何要求,动态数组和静态数组都可。

2)声明修饰符:函数在声明和定义时,允许我们在标头的最末处加上一些声明修饰符。以下将修饰符分成4类,而一个函数可使用多种类型的修饰符,各类修饰符之间以“;”分隔。

①    标注“函数调用约定”修饰符:

stdcall:使用堆栈的方式传递参数,且传递顺序为由右向左,功能是调用Windows API函数。

cdecl:使用堆栈的方式传递参数,且传递顺序为由右向左,当从C/C++写的DLL文件中调用某个函数时需此修饰符。

②    函数的前置定义(Forward):在单元中声明私有函数时,因未在interface区声明,所以函数的调用受到代码顺序的限制。在implementation区给函数做前置声明,可解决此问题。方法是:函数声明后加Forward;

③    External:调用非该项目的函数。④Overload:。

3)常用的内建函数:

Ø  数学计算方面:


Ø  时间日期方面:


Ø  类型转换方面:


Ø  字符串处理方面


Ø  随机数方面:



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目录 : 第0章 认识Delphi 0-1 前言 0-2 Delphi简介 0-3 进入Delphi7 0-4 退出Delphi 第1章 常用的窗口工具 1-1 窗体(Form) 1-2 代码编辑器(Code Editor) 1-3 代码浏览器(Code Explorer) 1-4 组件面板(Componet Palette) 1-5 对象检视器(Object Inspector) 1-6 快捷工具栏(Speed Menu) 1-7 项目管理器(Project Manager) 1-8 桌面工具栏(Desktops Tollbar) 1-9 图像编辑器(Image Editor) 1-10 对象浏览器(Object TreeView) 1-11 关联选项卡(Digram Page) 第2章 常用的菜单 2-1 File菜单 2-2 Edit菜单 2-3 Search菜单 2-4 View菜单 2-5 Project菜单 2-6 Run菜单 2-7 Tools菜单 2-8 Windows菜单 第3章 集成开发环境的改变 3-1 Delphi集成开民环境介绍 3-2 操作菜单方面的改进 3-2-1 外面方面的改变 3-2-2 内容方面的改变 3-3 对象检视器方面的改进 3-4 组件面板的改进 3-5 代码编辑器的改进 3-6 设计陈列室的改进 3-7 编译信息的显示 3-8 调试器方面的改进 3-8-1 Watch List改进 3-8-2 Debugger选项的改进 3-8-3 Run Parameters对话框的改进 第4章 Delphi Object Pascal的初步印象 4-1 面向对象程序概论 4-1-1 类 4-1-2 对象 4-1-3 继承 4-1-4 封装 4-1-5 信息 4-2 Delphi项目结构及窗体的建立 4-2-1 GUI模式的项目 4-2-2 Console模式的项目 4-3 Object Pascal程序结构 4-3-1 项目程序(Program)的结构 4-3-2 单元程序(Unit)的结构 4-4 如何完成一个简单的窗体程序 第5章 简单的常用指令介绍 5-1 TLabel类对象 5-1-1 Caption属性 5-2 TButton类对象 5-2-1 Caption属笥 5-2-2 OnClick事件 5-3 TEdit类对象 5-4 TCanvas类对象 5-5 Showmessage函数 5-6 InputBox函数 5-7 MessageDlg函灵敏 第6章 Delphi与Object Pascal程序的基本概念 6-1 Object Pascal Program程序结构与Delphi项目结构的关系 6-1-1 标头(Heading) 6-1-2 Uses子句 6-1-3 编译指令(Compiler directive) 6-1-4 源代码区(begin end) 6-2 Unit程序结构与窗体的关系 6-2-1 Unit代码结构 6-2-2 语句(Statement) 6-2-3 Unit间Use的状况 6-3 数据类型与定义变量 6-3-1 数据类型概论 6-3-2 不需要使用type声明的数据类型 6-3-3 必须使用type声明的数据类型 6-3-4 定义变量 6-3-5 变量的作用域 6-3-6 定义常量 6-3-7 变量的类型转换(Typecast) 6-4 Object Pascal的运算符(Operator) 6-4-1 设置运算符(assign Operator) 6-4-2 算数运算符(Arithmetic Operator) 6-4-3 关系运算符(Relational Operator) 6-4-4 布尔运算符 6-4-5 集合运算符 6-4-6 字符串运算符 6-4-7 位逻辑运算符 6-4-8 运算符优先级 6-5 流程控制 6-5-1 语句的基本概念 6-5-2 表达式语句(Expression-Statement) 6-5-3 流程控制语句 6-5-4 可视化程序与嵌套程序 6-6 数组与指针 6-6-1 数组类型 6-6-2 指针类型 6-6-3 浅谈指针与数据结构 6-7 程序与函数(Procedures and Functions) 6-7-1 函数的意义与优点 6-7-2 函数的分类与效用 6-7-3 自定义函数使用方法概述 6-7-4 函数的声明、定义及其实现 6-7-5 参数传递方式 6-7-6 声明修饰字 6-7-7 常用的内建函数 第7章 Object Pascal面向对象设计 7-1 类和对象 7-1-1 类(Class)与对象(Object)的基本概念 7-1-2 对象的构造与类的关系 7-2 类的声明与对象的定义 7-2-1 类的声明与对象的实现 7-2-2 对象的构造与析构 7-3 类成员的封装等级与可见度 7-3-1 封装的意义 7-3-2 Object Pascal类成员的封装等级 7-3-3 以实例说明类成员封装等级的可见度 7-3-4 开头不加保留字的类成员 7-3-5 成员封装等级的变更法则 7-4 类成员的定义与实现 7-4-1 字段(Field)与对象引用(Object Reference)的实现 7-4-2 方法(Method) 7-4-3 属性(Property) 7-5 类的继承 7-5-1 继承的意义与优点 7-5-2 子类成员的存在方式 7-6 成员函数的Override及 Overload 7-6-1 Override 适用的情况——Virtual与 Dynamic的成员函数 7-6-2 Override成员函数的定义语法 7-6-3 Virtual成员函数与动态绑定(Dynamic Binding) 7-6-4 覆盖(Overriding)与隐藏(Hiding)的差别 7-6-5 Override与OVerload的差别 7-7 Abstract成员函数与多态(Polymorphic) 7-7-1 一般纯虚函数的多态实现概念 7-7-2 纯虚函数的定义语法及实现 7-8 Self、AS、is、Sender、Parent、owner、inerited 7-8-1 Self变量 7-8-2 AS运算符 7-8-3 is运算符 7-8-4 Sender 7-8-5 Parent 7-8-6 owner 7-8-7 inerited保留字 7-9 静态成员方法——Class Methods 第8章 异常处理 8-1 异常处理存在的目的 8-2 Object Pascal异常的种类 8-2-1 Delphi内建的异常类 8-2-2 自定义异常类 8-3 触发异常的方法 8-3-1 由程序系统自动触发 8-3-2 使用Raise指令触发 8-4 处理异常情况 8-4-1 try…finally…end语法说明 8-4-2 ty…except…end语法说明 第9章 Delphi用户接口设计详述 9-1 基本概念 9-2 TForm的属性 9-2-1 由TComponent继承而来的属性 9-2-2 由TControl继承而来的属性 9-2-3 由TWinControl继承而来的属性 9-2-4 由TScrollingWindControl继承而来的属性 9-2-5 由TCustomForm继承而来的属性 9-3 TForm的方法 9-3-1 由TObject继承而来的属性 9-3-2 由TPersistent继承而来的属性 9-3-3 由TComponent继承而来的属性 9-3-4 由TControl继承而来的属性 9-3-5 由WinControl继承而来的属性 9-3-6 由TScrollingWinControl继承而来的属性 9-3-7 由TCustomForm继承而来的属性 9-3-8 由TForm继承而来的属性 9-4 TForm的事件 9-4-1 由TControl继承而来的属性 9-4-2 由TWinControl继承而来的属性 9-4-3 由TCustomForm继承而来的属性 9-5 TLabel的类成员 9-5-1 TLabel的属性 9-5-2 TLabel的方法 第10章 标准组件介绍及实作范例 10-1 Frames组件 10-2 MainMenu组件 10-3 PopuMenu组件 10-4 Label组件 10-5 Edit组件 10-6 Memo组件 10-7 Button组件 10-8 CheckBox组件 10-9 RadioButton组件 10-10 ListBox组件 10-11 ComboBox组件 10-12 ScrollBar组件 10-13 GroupBox组件 10-14 RadioGroup组件 10-15 Panel组件 10-16 ActionList组件 第11章 TApplication与TScreen类介绍及应用 11-1 TApplication类 11-1-1 TApplication类对象常用的属性 11-1-2 TApplication类对象常用的方法 11-2 TScreen类 第12章 高级组件介绍 12-1 Additional选项卡中的常用组件 12-1-1 TBitBtn组件 12-1-2 TMaskEdit组件 12-1-3 TImage组件 12-1-4 TShape组件 12-2 Win32选项卡中的常用组件 12-2-1 TPageControl组件 12-2-2 TImageList组件 12-2-3 TRichEdit组件 12-2-4 TDateTimePicker组件 12-2-5 TStatusBar组件 12-3 System选项卡中的常用组件 12-3-1 TTimer组件 12-4 Dialogs选项卡中的常用组件 12-4-1 TOpenDialog组件 12-4-2 FTontDialog组件 12-4-3 TColorDialog组件 第13章 封装Delphi7开发的应用程序 13-1 安装Borland的InstallShiled程序 13-2 利用InstallShield封装 Delphi7开发的程序 13-2-1 InstallShield环境界面简介 13-2-2 封装一个简单的Delphi项目 第14章 数据库概念及SQL指令介绍 14-1 数据库基本概念 14-1-1 数据库结构 14-1-2 开放数据库连接协议(ODBC) 14-1-3 SQL Explorer 14-2 结构化查询语言SQL 14-2-1 CREATE语句 14-2-2 ALTER TABLE语句 14-2-3 DROP语句 14-2-4 SELECT语句 14-2-5 INSERT、UPDATE语句 14-2-6 DELETE语句 14-3 SQL指令高级使用 14-3-1 UNION运算 14-3-2 JOIN运算 14-3-3 特殊运算符 14-3-4 子查询(Sub Query) 第15章 Delphi数据库程序基础 15-1 Delphi各种数据库连接设置 15-1-1 建立dBase、Paradox连接 15-1-2 建立Access连接 15-1-3 建立MSSQL连接 15-1-4 建立MySQL连接 15-2 Delphi的Database Desktop使用方法 15-2-1 字段定义 15-2-2 输入数据 15-2-3 设置BDE数据库别名与连接数据库 第16章 Delphi数据库程序设计——使用BDE组件 16-1 TDataSet组件 16-1-1 TDataSet组件常用的属性 16-1-2 TDataSet组件常用的方法 16-1-3 TDataSet组件常用的事件 16-2 TTable组件 16-2-1 TTable组件常用的属性 16-2-2 TTable组件常用的方法 16-3 TQuery组件 16-3-1 TQuery组件常用的属性 16-3-2 TQuery组件常用的方法 16-4 TDataModule组件 16-5 TDatabase组件 16-5-1 TDatabase组件常用的属性 16-5-2 TDatabase组件常用的方法 16-5-3 TDatabase组件常用的事件 16-6 综合范例 16-6-1 员工管理系统——使用TTable组件 16-6-2 员工管理系统——使用TQuery组件 16-6-3 订单管理系统——使用TTable组件 16-6-4 订单系统——使用TQuery组件 第17章 数据程序设计——使用Delphi组件 17-1 TADOConnection组件 17-1-1 TADOConnection组件常用的属性 17-1-2 TADOConnection组件常用的方法 17-1-3 TADOConnection组件常用的事件 17-2 TADOCommand组件 17-2-1 TADOCommand组件常用的属性 17-2-2 TADOCommand组件常用的方法 17-3 TADODataSet组件 17-3-1 TADODataSet组件常用的属性 17-3-2 TADODataSet组件常用的方法 17-3-3 TADODataSet组件常用的事件 17-4 TADOTable组件 17-4-1 TADOTable组件常用的属性 17-4-2 TADOTable组件常用的方法 17-5 TADOQuery组件 17-6 综合范例 17-6-1 客户管理系统——使用TADODataSet组件 17-6-2 客户管理系统——使用TADOTable组件 17-6-3 客户管理系统——使用TADOQuery组件 17-6-4 订单管理系统——使用TADOTable组件 17-6-5 订单系统——使用TADOQuery组件 第18章 数据感知组件 18-1 TDBText组件 18-2 TDBEdit组件 18-3 TDBMemo组件 18-4 TDBImage组件 18-5 TDBListBox组件 18-6 TDBComboBox组件 18-7 TDBLookupListBox与TDBLookupComboBox组件 18-8 TDBNavigator组件 18-9 TDBGrid组件 第19章 设计Delphi数据库报表 19-1 设计报表的基本观念 19-1-1 报表的组成 19-1-2 报表的主体组件——TquickRep 19-1-3 建立第一个报表程序 19-2 QuickReport中可打印出组件 19-2-1 TQR系列组件介绍 19-2-2 TQRDB系列组件介绍 19-3 综合范例 19-3-1 一般表达报表范例 19-3-2 标签式报表范例 19-3-3 主/明细报表范例 19-3-4 一般表达式附图片报表范例 19-3-5 分组式报表范例——打印多色报表 19-3-6 报表输出及输出范例
Delphi11 是最新的 Delphi 版本,而 `delphi-opencv-master` 是一个开源的 Delphi 与 OpenCV 集成的项目,它提供了一组 Delphi 封装的 OpenCV 函数和类,方便 Delphi 开发者使用 OpenCV 进行图像处理和计算机视觉操作。 在 Delphi11 中,你可以通过以下步骤来使用 `delphi-opencv-master`: 1. 首先,你需要下载 `delphi-opencv-master` 项目的源代码,可以从 GitHub 上下载:https://github.com/Laex/Delphi-OpenCV 2. 解压缩下载的源代码,并将其中的 `OpenCV` 文件夹复制到 Delphi11 项目的根目录下。 3. 在 Delphi11 中打开你的项目,然后在菜单栏中选择 `Project` -> `Options` -> `Delphi Compiler` -> `Search Path`,将 OpenCV 文件夹所在的路径添加到搜索路径中。 4. 在 Delphi11 中使用 `uses` 语句引入 `OpenCV_Image` 单元,并调用其中的函数和类来进行图像处理和计算机视觉操作。 例如,以下代码演示了如何使用 `delphi-opencv-master` 进行图像读取和灰度化: ``` uses OpenCV_Image; var img: IplImage; begin // 读取图像 img := LoadImage('lena.jpg'); // 将图像转换为灰度图像 cvCvtColor(img, img, CV_RGB2GRAY); // 显示图像 ShowImage('My Image', img); // 等待用户按下任意键 WaitKey; // 释放图像内存 img.Release; end; ``` 这段代码使用了 `OpenCV_Image` 单元中提供的 `LoadImage` 函数和 `ShowImage` 函数来读取和显示图像,使用了 OpenCV 库中的 `cvCvtColor` 函数将图像转换为灰度图像。你可以根据自己的需要,使用 `delphi-opencv-master` 中提供的其他函数和类来进行更加复杂的图像处理和计算机视觉操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值