文档库 最新最全的文档下载
当前位置:文档库 › 实验代码

实验代码

实验代码
实验代码

例1:程序将数据从源数据区src复制到目标数据区dst复制时,以8个字为单位进行。对于最后所剩不足8个字的数据,以字为单位进行复制,这时程序跳转到copywords处执行。在进行以8个字为单位的数据复制时,保存了所用的8个工作寄存器。

在ADS编译环境下,程序如下:

AREA B1ock,CODE,READONLY ;设置本段程序的名称及属性

NUM EQU 20 ;设置将要复制的字数

ENTRY ;标识程序人口点

LDR R0,=src ;R0寄存器指向源数据区src

LDR R1,=dst ;Rl寄存器指向目标数据区dst

MOV R2,#NUM ;R2指定将要复制的宇数

MOV SP,#&400 ;设置数据栈指针,用于保存工作寄存器数值

Bcopy MOVS R3,R2,LSR #3 ;需要进行的以8个字为单位的复制次数

BEQ Cword ;不足8个字的数据,跳转到Cword以字为单位复制

STMFD SP!,{R4-R11} ;保存工作寄存器

Ocopy LDMIA R0!,{R4-R11} ;从源数据区读取8个字的数据,放到8个寄

;存器中,并更新目标数据区指针R0

STMIA R1!,{R4-R11} ;将这8个字数据写入到目标数据区中并更新

;目标数据区指针R1

SUBS R3,R3,#1 ;将块复制次数减l

BNE Ocopy ;循环,直到完成以8个字为单位的块复制

LDMFD SP!,{R4-R11} ;恢复工作寄存器值

Cword ANDS R2,R2,#7 ;剩下不足8个字的数据的字数

BEQ Stop ;数据复制完成

Wcopy LDR R3,[R0],#4 ;读取剩下的数据放到R3 ,并更新目标数据区指针R0 STR R3,[R1],#4 ;将这R3中数据写入到目标数据区中

;并更新目标数据区指针R1

SUBS R2,R2,#1 ;将字数减l

BNE Wcopy ;循环,直到完成以字为单位的数据复制

Stop ;程序结束处理

MOV R0,#0x18 ;本条与下条指令的作用是参数传递

LDR R1,=&20026

SWI 0x123456 ;将CPU的控制权交给调试器

AREA Bdata,DA TA,READWRITE ;定义数据区Bdata

src DCD 1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8,1,2,3,4

dst DCD 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

;这里的DCD定义源数据区src及目标数据区dst

END ;结束汇编

编写程序循环对R4-R11进行累加8次起始值,R4-R11起始值分别为1~8,每次累加操作后把R4-R11的内容放入SP堆栈中,SP初始设置为0x40000000。最后把R4-R11用LDMFD指令清空赋值为0。

AREA B1ock,CODE,READONLY ;设置本段程序的名称及属性

ENTRY ;标识程序人口点

Start ldr r0,=src

ldr r1,=reset

mov s p,#0x40000000

ldmia r0!,{r4-r11}

mov r2,#7

DoAdd add r4,r4,#1

add r5,r5,#2

add r6,r6,#3

add r7,r7,#4

add r8,r8,#5

add r9,r9,#6

add r10,r10,#7

add r11,r11,#8

stmia sp!,{r4-r11}

sub r2,r2,#1

cmp r2,#0

bne DoAdd

ldmfd r1!,{r4-r11}

stop

b stop

AREA Bdata,DA TA,READWRITE ;定义数据区Bdata

src DCD 1,2,3,4,5,6,7,8

reset DCD 0,0,0,0,0,0,0,0

end

3、用ARM汇编语言设计程序实现求20!(20的阶乘),并将其64位结果放在[R9:R8]中(R9中存放高32位)。

AREA Fctrl, CODE, READONL Y

ENTRY

CODE32

STARY

MOV R8, #20

MOV R9, #0

SUB R0, R8, #1

LOOP

MOV R1, R9

UMULL R8, R9, R0,R8

MLA R9,R1,R0,R9

SUBS R0,R0, #1

BNE LOOP

STOP

B STOP

END

编写1+2+3+……+100的汇编程序:

AREA Block, CODE, READONLY

ENTRY

start

mov r0,#0;

mov r1,#1

aga

add r0,r0,r1

add r1,r1,#1

cmp r1,#101

bne aga

MOV r0, #0x18

LDR r1, =0x20026

SWI 0x123456

END

字符串拷贝子程序,将r1指向的字符串拷贝到r0指向的地方,字符串以0作结束标志

AREA SCopy, CODE, READONLY

EXPORT strcopy

strcopy

; r0 points to destination string

; r1 points to source string

LDRB r2, [r1],#1 ; load byte and update address

STRB r2, [r0],#1 ; store byte and update address;

CMP r2, #0 ; check for zero terminator

BNE strcopy ; keep going if not

MOV pc,lr ; Return

END

5、存储器从0x400000开始的100个单元中存放着ASCII码,编写程序,将其所有的小写字母转换成大写字母,对其它的ASCII码不做变换。

解:

MOV R0,#0x400000

MOV R1,#0

LP LDRB R2,[R0,R1]

CMP R2,#0x61

BLO NEXT

CMP R2,#0x7B ;0x7A为z

SUBLO R2,R2,#0x20

STRBLO R2,[R0,R1]

NEXT

ADD R1,R1,#1

CMP R1,#100

BNE LP

4、编写程序,比较存储器中0x400000和0x400004两无符号字数据的大小,并且将比较结果存于0x400008的字中,若两数相等其结果记为0,若前者大于后者其结果记为1,若前者小于后者其结果记为-1。

解: MOV R0,#0x400000

LDR R1,[R0] ;取第1个数

LDR R2,[R0,#4] ;取第2个数

CMP R1,R2 ;两个数相比较

MOVHI R1,#1 ;R1大

MOVLO R1,# -1 ;R1小

MOVEQ R1,#0 ;两个数相等

STR R1,[R0,#8]

求两个数的最大值,并将最大值放R0寄存器

AREA MAX,CODE,READONLY

ENTRY

START

MOV R1,#0x16

M0V R2,#0x17

CMP R1,R2

MOVMI R0,R2

MOVPL R0,R1

STOP

B STOP

END

7、编写一程序,存储器中从0x400200开始有一个64位数。(1)将取反,再存回原处;(2)求其补码,存放到0x400208处。

解:

LDR R0,=0x400200

LDR R2,=0xFFFFFFFF

LDR R1,[R0] ;取低32位数

EOR R1,R1,R2 ;取反

STR R1,[R0] ;存低32位反码

ADDS R1,R1,#1 ;又加1为求补

STR R1,[R0,#8] ;存低32位补码

LDR R1,[R0,#4] ;取高32位数

EOR R1,R1,R2 ;取反

STR R1,[R0,#4] ;存高32位反码

ADC R1,R1,#0 ;高32位求补

STR R1,[R0,#12] ;存高32位补码

5、8421码是一种十进制数,它采用4个bit位表示一个十进制位,分别用0000~1001表示十进制的0~9。设计汇编程序将一个可以表示8位十进制的8421码数据转换成等价的整数形数据。

AREA Dec, CODE, READONLY

ENTRY

CODE32

LDR R0,=0x12345678

Dec2int

MOV R1, #0

MOV R2, #8

MOV R5,#10

Dec2int_l1

MUL R4, R1, R5

MOV R0, R0, ROR #28

AND R3, R0, #0Xf

ADD R1, R4, R3

SUBS R2, R2, #1

BNE Dec2int_l1

STOP

B STOP

END

有100个有符号的字数据,存放在内存BUFF中,编完整的程序(包括代码段、数据段)找出最大值、最小值分别放入内存单元MAX、MIN中。

AREA Block, CODE, READONLY

ENTRY

start

ldr r0,=BUFF;

mov r1,#100

ldr r4,[r0];max

ldr r5,[r0];min

cmpe ldr r3,[r0]

cmp r4,r3

bgt cmpnext;

mov r4,r3;小于等于

cmpnext

cmp r5,r3

blt loop

mov r5,r3; 小于

loop add r0,r0,#4

sub r1,r1,#1

cmp r1,#0

bne cmpe

ldr r0,=MAX;

str r4,[r0]

ldr r0,=MIN;

str r5,[r0]

MOV r0, #0x18

LDR r1, =0x20026

SWI 0x123456

AREA BlockData, DATA, READWRITE

BUFF DCD 1,-2,3,4,5,6,7,-8,1,2,3,4,5,6,7,8,1,2,3,12 MAX DCD 0

MIN DCD 0

END

51单片机20个实验-代码详细

第一章单片机系统板说明 一、概述 单片机实验开发系统是一种多功能、高配置、高品质的MCS-51单片机教学与开发设备。适用于大学本科单片机教学、课程设计和毕业设计以及电子设计比赛。 该系统采用模块化设计思想,减小了系统面积,同时增加了可靠性,使得单片机实验开发系统能满足从简单的数字电路实验到复杂的数字系统设计实验,并能一直延伸到综合电子设计等创新性实验项目。该系统采用集成稳压电源供电,使电源系统的稳定性大大提高,同时又具备完备的保护措施。为适应市场上多种单片机器件的应用,该系统采用“单片机板+外围扩展板”结构,通过更换不同外围扩展板,可实验不同的单片机功能,适应了各院校不同的教学需求。 二、单片机板简介 本实验系统因为自带了MCS-51单片机系统,因此没有配置其他单片机板,但可以根据教学需要随时配置。以单片机板为母板,并且有I/O接口引出,可以很方便的完成所有实验。因此构成单片机实验系统。 1、主要技术参数 (1)MSC-51单片机板 板上配有ATMEL公司的STC89C51芯片。 STC89C51资源:32个I/O口;封装DIP40。 STC89C51开发软件:KEIL C51。 2、MSC-51单片机结构 (1)单片机板中央放置一块可插拔的DIP封装的STC89C51芯片。 (2)单片机板左上侧有一个串口,用于下载程序。 (3)单片机板的四周是所有I/O引脚的插孔,旁边标有I/0引脚的脚引。 (4)单片机板与各个模块配合使用时,可形成—个完整的实验系统。 三、母板简介 主要技术参数 (1)实验系统电源 实验系统置了集成稳压电源,使整个电源具有短路保护、过流保护功能,提高了实验的稳定性。 主板的右上角为电源总开关,当把220V交流电源线插入主板后,打开电源开关,主板

数字图像处理实验报告

数字图像处理实验报告 实验一数字图像基本操作及灰度调整 一、实验目的 1)掌握读、写图像的基本方法。 2)掌握MATLAB语言中图像数据与信息的读取方法。 3)理解图像灰度变换处理在图像增强的作用。 4)掌握绘制灰度直方图的方法,理解灰度直方图的灰度变换及均衡化的方 法。 二、实验内容与要求 1.熟悉MATLAB语言中对图像数据读取,显示等基本函数 特别需要熟悉下列命令:熟悉imread()函数、imwrite()函数、size()函数、Subplot()函数、Figure()函数。 1)将MATLAB目录下work文件夹中的forest.tif图像文件读出.用到imread, imfinfo 等文件,观察一下图像数据,了解一下数字图像在MATLAB中的处理就是处理一个矩阵。将这个图像显示出来(用imshow)。尝试修改map颜色矩阵的值,再将图像显示出来,观察图像颜色的变化。 2)将MATLAB目录下work文件夹中的b747.jpg图像文件读出,用rgb2gray() 将其 转化为灰度图像,记为变量B。 2.图像灰度变换处理在图像增强的作用 读入不同情况的图像,请自己编程和调用Matlab函数用常用灰度变换函数对输入图像进行灰度变换,比较相应的处理效果。 3.绘制图像灰度直方图的方法,对图像进行均衡化处理 请自己编程和调用Matlab函数完成如下实验。 1)显示B的图像及灰度直方图,可以发现其灰度值集中在一段区域,用 imadjust函 数将它的灰度值调整到[0,1]之间,并观察调整后的图像与原图像的差别,调整后的灰

度直方图与原灰度直方图的区别。 2) 对B 进行直方图均衡化处理,试比较与源图的异同。 3) 对B 进行如图所示的分段线形变换处理,试比较与直方图均衡化处理的异同。 图1.1 分段线性变换函数 三、实验原理与算法分析 1. 灰度变换 灰度变换是图像增强的一种重要手段,它常用于改变图象的灰度范围及分布,是图象数字化及图象显示的重要工具。 1) 图像反转 灰度级范围为[0, L-1]的图像反转可由下式获得 r L s --=1 2) 对数运算:有时原图的动态范围太大,超出某些显示设备的允许动态范围, 如直接使用原图,则一部分细节可能丢失。解决的方法是对原图进行灰度压缩,如对数变换: s = c log(1 + r ),c 为常数,r ≥ 0 3) 幂次变换: 0,0,≥≥=γγc cr s 4) 对比拉伸:在实际应用中,为了突出图像中感兴趣的研究对象,常常要求 局部扩展拉伸某一范围的灰度值,或对不同范围的灰度值进行不同的拉伸处理,即分段线性拉伸: 其对应的数学表达式为:

实验一代码及截图

实验一https://www.wendangku.net/doc/5315743171.html,基础 实验目的 1、掌握Visual Studio运行环境的配置方法。 2、通过编写简单的https://www.wendangku.net/doc/5315743171.html,页面,掌握https://www.wendangku.net/doc/5315743171.html,网页的编写和运 行方法。 实验内容 一、创建文件系统网站; 1. 在D盘新建文件夹03soft,作为网站目录; 2. 在网站的默认的主页上添加控件Button,双击该控件添加如下代码: protected void Button1_Click(object sender, EventArgs e) { Response.Write("欢迎光临学习天地!"); } 3. 运行这个页面,写出这个页面运行时的页面地址。 实验截图:

二、创建HTTP网站 1、打开IIS管理器,进入管理页面,添加网站名称mysite,并设置物理路径; 2、创建HTTP网站,并选取mysite作为网站目录; 3、在的默认的主页上添加控件Button,双击该控件添加如下代码: protected void Button1_Click(object sender, EventArgs e) { Response.Write("欢迎光临学习天地!"); }

4、运行这个页面,写出这个页面运行时的页面地址。 实验截图: 三、创建单一文件模式网页 1、打开第一题中的文件系统网站,新建一个名为Default2.aspx的单一文件模式的网页,并在网页中添加Label控件和Button控件,双击Button控件,添加如下代码: Label1.Text = "Clicked at " + DateTime.Now.ToString(); 2、运行这个页面,写出单击Button时的运行结果 实验截图:

图论实验代码

图论实验报告(代码) 学号:1241902129 姓名:肖尧

1.写一个程序,输入一个图,一对顶点和通路长度,输出两个顶点间 指定长度的通路。 程序代码: #include #include #include using namespace std; #define MAX 20 typedef struct ArcNode{ int adjvex; struct ArcNode *nextarc; }ArcNode; typedef struct VNode{ char data; ArcNode *firstarc; }VNode,AdjList[MAX]; typedef struct{ AdjList vertices; int n,e; }MGraph; int path[MAX]; int visited[MAX]; //返回字符v 在图中的位置 int LocateV ex(MGraph G, char v) { int i; for(i=0;i

{ return (i>=0 && i>G.n>>G.e; cout<20) { cout<<"输入的数字不符合要求,请重新输入: "; cin>>G.n>>G.e; } while(G.e>((G.n-1)*G.n/2)) { cout<<"输入的数字不符合要求,请重新输入: "; cin>>G.e; } cout<<"请输入各顶点的名称: "; //建立顶点表 for(i=0;i>G.vertices[i].data; G.vertices[i].firstarc=NULL;//初始化图 } cout<

武汉科技大学 数字图像处理实验报告

二○一四~二○一五学年第一学期电子信息工程系 实验报告书 班级:电子信息工程(DB)1102班姓名 学号: 课程名称:数字图像处理 二○一四年十一月一日

实验一图像直方图处理及灰度变换(2学时) 实验目的: 1. 掌握读、写、显示图像的基本方法。 2. 掌握图像直方图的概念、计算方法以及直方图归一化、均衡化方法。 3. 掌握图像灰度变换的基本方法,理解灰度变换对图像外观的改善效果。 实验内容: 1. 读入一幅图像,判断其是否为灰度图像,如果不是灰度图像,将其转化为灰度图像。 2. 完成灰度图像的直方图计算、直方图归一化、直方图均衡化等操作。 3. 完成灰度图像的灰度变换操作,如线性变换、伽马变换、阈值变换(二值化)等,分别使用不同参数观察灰度变换效果(对灰度直方图的影响)。 实验步骤: 1. 将图片转换为灰度图片,进行直方图均衡,并统计图像的直方图: I1=imread('pic.jpg'); %读取图像 I2=rgb2gray(I1); %将彩色图变成灰度图 subplot(3,2,1); imshow(I1); title('原图'); subplot(3,2,3); imshow(I2); title('灰度图'); subplot(3,2,4); imhist(I2); %统计直方图 title('统计直方图'); subplot(3,2,5); J=histeq(I2); %直方图均衡 imshow(J); title('直方图均衡'); subplot(3,2,6); imhist(J); title('统计直方图');

原 图 灰度图 01000 2000 3000统计直方图 100200直方图均衡 0统计直方图 100200 仿真分析: 将灰度图直方图均衡后,从图形上反映出细节更加丰富,图像动态范围增大,深色的地方颜色更深,浅色的地方颜色更前,对比更鲜明。从直方图上反应,暗部到亮部像素分布更加均匀。 2. 将图片进行阈值变换和灰度调整,并统计图像的直方图: I1=imread('rice.png'); I2=im2bw(I1,0.5); %选取阈值为0.5 I3=imadjust(I1,[0.3 0.9],[]); %设置灰度为0.3-0.9 subplot(3,2,1); imshow(I1); title('原图'); subplot(3,2,3); imshow(I2); title('阈值变换'); subplot(3,2,5); imshow(I3); title('灰度调整'); subplot(3,2,2); imhist(I1); title('统计直方图'); subplot(3,2,4);

STM32实验程序代码

实验1 GPIO #include "stm32f10x.h" #include "delay.h" //#include "sys.h" #include "stm32f10x_exti.h" //QHKJ TEB-CM5000实验箱STM32实验1 //固件库V3.5工程模板 //QHKJ GPIO_InitTypeDef GPIO_InitStructure; EXTI_InitTypeDef EXTI_InitStructure; /* Private function prototypes -----------------------------------------------*/ void RCC_Configuration(void); void NVIC_Configuration(void); void GPIO_Configuration(void); /* Private functions ---------------------------------------------------------*/ /****************************************************************************** * * Function Name : main * Description : Main program. * Input : None * Output : None * Return : None ******************************************************************************* / int main(void) { /* Configure the system clocks */ // RCC_Configuration(); // SysTick_Configuration(); delay_init(); /* NVIC Configuration */ NVIC_Configuration(); /* Configure the GPIO ports */ GPIO_Configuration(); /* Connect EXTI Line9 to PA.9 */

数电实验报告1-数电实验报告实验一

实验一门电路逻辑功能及测试 一、实验目得 1、熟悉门电路逻辑功能。 2、熟悉数字电路学习机及示波器使用方法。 二、实验仪器及材料 1、双踪示波器 2、器件 74LS00 二输入端四与非门2片 74LS20 四输入端双与非门1片 74LS86二输入端四异或门1片 74LS04 六反相器1片 三、预习要求 1、复习门电路工作原理相应逻辑表达示。 2、熟悉所有集成电路得引线位置及各引线用途。 3、了解双踪示波器使用方法。 四、实验内容 实验前按学习机使用说明先检查学习机就是否正常,然后选择实验用得集成电路,按自己设计得实验接线图接好连线,特别注意Vcc及地线不能接错。线接好后经实验指导教师检查无误方可通电。试验中改动接线须先断开电源,接好线后在通电实验。 1、测试门电路逻辑功能。 (1)选用双输入与非门74LS20一只,插入面包板,按图 连接电路,输入端接S1~S4(电平开关输入插口),输 出端接电平显示发光二极管(D1~D8任意一个)。 (2)将电平开关按表1、1置位,分别测出电压及逻辑状态。(表1、1)

2、异或门逻辑功能测试 (1)选二输入四异或门电路74LS86,按图接线,输入端1﹑2﹑4﹑5接电平开关,输出端A﹑B﹑Y接电平显示发光二极管。 (2)将电平开关按表1、2置位,将结果填入表中。 表1、2 3、逻辑电路得逻辑关系

(1)选用四二输入与非门74LS00一只,插入面包板,实验电路自拟。将输入输出逻辑关系分 别填入表1、3﹑表1、4。 (2)写出上面两个电路得逻辑表达式。 表1、3 Y=A ⊕B 表1、4 Y=A ⊕B Z=AB 4、逻辑门传输延迟时间得测量 用六反相器(非门)按图1、5接线,输80KHz 连续脉冲,用双踪示波器测输入,输出相位差,计算每个门得平均传输延迟时间得tpd 值 : tpd =0、2μs/6=1/30μs 5、利用与非门控制输出。 选用四二输入与非门74LS00一只,插入面包板,输入接任一电平开关,用示波器观察S对输出脉冲得控制作用: 一端接高有效得脉冲信号,另一端接控制信号。只有控制信号端为高电平时,脉冲信号才能通过。这就就是与非门对脉冲得控制作用。 6.用与非门组成其她门电路并测试验证 (1)组成或非门。 用一片二输入端与非门组成或非门 Y = A+ B = A ? B 画出电路图,测试并填表1、5 中。 表1、5 图如下: (2)组成异或门 ① 将异或门表达式转化为与非门表达式。 A ⊕B={[(AA)'B]'[A( B B)']}' ② 画出逻辑电路图。 ③ 测试并填表1、6。表1、6

实验一代码及截图

实验一基础 实验目的 1、掌握Visual Studio运行环境的配置方法。 2、通过编写简单的页面,掌握网页的编写和运行方法。 实验内容 一、创建文件系统网站; 1. 在D盘新建文件夹03soft,作为网站目录; 2. 在网站的默认的主页上添加控件Button,双击该控件添加如下代码: protected void Button1_Click(object sender, EventArgs e) { ("欢迎光临学习天地!"); } 3. 运行这个页面,写出这个页面运行时的页面地址。 实验截图:

二、创建HTTP网站 1、打开IIS管理器,进入管理页面,添加网站名称mysite,并设置物理路径; 2、创建HTTP网站,并选取mysite作为网站目录; 3、在的默认的主页上添加控件Button,双击该控件添加如下代码: protected void Button1_Click(object sender, EventArgs e) { ("欢迎光临学习天地!"); } 4、运行这个页面,写出这个页面运行时的页面地址。

实验截图: 三、创建单一文件模式网页 1、打开第一题中的文件系统网站,新建一个名为的单一文件模式的网页,并在网页中添加Label控件和Button控件,双击Button控件,添加如下代码: = "Clicked at " + 、运行这个页面,写出单击Button时的运行结果 实验截图:

四、打开第一题中的文件系统网站,在网页的Page_Load事件中编写代码,实现在ListBox1中填充选项,并且单击按钮时不重复加载。 实验截图:

数字图像处理实验报告

目录 实验一:数字图像的基本处理操作 (4) :实验目的 (4) :实验任务和要求 (4) :实验步骤和结果 (5) :结果分析 (8) 实验二:图像的灰度变换和直方图变换 (9) :实验目的 (9) :实验任务和要求 (9) :实验步骤和结果 (9) :结果分析 (13) 实验三:图像的平滑处理 (14) :实验目的 (14) :实验任务和要求 (14) :实验步骤和结果 (14) :结果分析 (18) 实验四:图像的锐化处理 (19) :实验目的 (19) :实验任务和要求 (19) :实验步骤和结果 (19) :结果分析 (21)

实验一:数字图像的基本处理操作 :实验目的 1、熟悉并掌握MATLAB、PHOTOSHOP等工具的使用; 2、实现图像的读取、显示、代数运算和简单变换。 3、熟悉及掌握图像的傅里叶变换原理及性质,实现图像的傅里叶变换。:实验任务和要求 1.读入一幅RGB图像,变换为灰度图像和二值图像,并在同一个窗口内分 成三个子窗口来分别显示RGB图像和灰度图像,注上文字标题。 2.对两幅不同图像执行加、减、乘、除操作,在同一个窗口内分成五个子窗口来分 别显示,注上文字标题。 3.对一幅图像进行平移,显示原始图像与处理后图像,分别对其进行傅里叶变换, 显示变换后结果,分析原图的傅里叶谱与平移后傅里叶频谱的对应关系。 4.对一幅图像进行旋转,显示原始图像与处理后图像,分别对其进行傅里 叶变换,显示变换后结果,分析原图的傅里叶谱与旋转后傅里叶频谱的 对应关系。 :实验步骤和结果 1.对实验任务1的实现代码如下: a=imread('d:\'); i=rgb2gray(a); I=im2bw(a,; subplot(1,3,1);imshow(a);title('原图像'); subplot(1,3,2);imshow(i);title('灰度图像'); subplot(1,3,3);imshow(I);title('二值图像'); subplot(1,3,1);imshow(a);title('原图像'); 结果如图所示:

实验三 代码转换

电工电子实验中心 实验报告 课程名称:计算机硬件技术基础实验名称:代码转换 姓名:学号: 评定成绩:审阅教师:实验时间:2017.05.02 南京航空航天大学

— 一、实验目的要求 1) 掌握 ASCII 码转换的基本方法。 2) 学会 INT21 功能调用, 掌握人机对话的设计方法。 3) 进一歩熟悉 Tddebug 调试环境和 Turbo Debugger 的使用。 二、实验任务 从键盘输入小写字母(最多 20 个),以“.”号作为结束标志, 将其变换成相应的大写字母输岀在屏幕上。 三、实验代码 CRLF MACRO MOV DL, 0DH MOV AH, 02H INT 21H MOV DL, 0AH ;宏定义回车,换行 MOV AH, 02H INT 21H ENDM DATA SEGMENT MES1 DB 'PLEASE INPUT THE SMALL LETTER,ENDED WITH ".":$' MES2 DB 'THE CAPTAL LETTER IS:$' SMALL DB 50 ;?预留键盘输入缓冲区长度为50个 DB 0 ;?预留实际键盘输入字符数的个数 DB 50 DUP(0) CAPITAL DB 50 DUP('$') ;?预留大写字母缓冲区长度为50个 DATA ENDS STACK1 SEGMENT STACK DB 100 DUP (0) STACK1 ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK1 START PROC FAR PUSH DS MOV AX, 0 PUSH AX

数字图像实验报告讲解

数 字 图 像 实 验 报 告 学院:计算机与信息工程学院 专业:通信工程 学号:1008224072 姓名:张清峰

实验一图像增强—灰度变换 专业:通信工程学号:1008224072姓名:张清峰 一、实验目的: 1、了解图像增强的目的及意义,加深对图像增强的感性认识,巩固所学理论知识。 2、学会对图像直方图的分析。 3、掌握直接灰度变换的图像增强方法。 二、实验原理及知识点 术语‘空间域’指的是图像平面本身,在空间与内处理图像的方法是直接对图像的像素进行处理。空间域处理方法分为两种:灰度级变换、空间滤波。空间域技术直接对像素进行操作其表达式为 g(x,y)=T[f(x,y)] 其中f(x,y)为输入图像,g(x,y)为输出图像,T是对图像f进行处理的操作符,定义在点(x,y)的指定领域内。 定义点(x,y)的空间邻近区域的主要方法是,使用中心位于(x,y)的正方形或长方形区域,。此区域的中心从原点(如左上角)开始逐像素点移动,在移动的同时,该区域会包含不同的领域。T应用于每个位置(x,y),以便在该位置得到输出图像g。在计算(x,y)处的g值时,只使用该领域的像素。 灰度变换T的最简单形式是使用领域大小为1×1,此时,(x,y)处的g值仅由f 在该点处的亮度决定,T也变为一个亮度或灰度级变化函数。当处理单设(灰度)图像时,这两个术语可以互换。由于亮度变换函数仅取决于亮度的值,而与(x,y)无关,所以亮度函数通常可写做如下所示的简单形式: s=T(r) 其中,r表示图像f中相应点(x,y)的亮度,s表示图像g中相应点(x,y)的亮度。 三、实验内容: 1、图像数据读出 2、计算并分析图像直方图 3、利用直接灰度变换法对图像进行灰度变换 下面给出灰度变化的MATLAB程序 f=imread('C:\ch17\tu\6.jpg'); g=imhist(f,256); imshow(g) %显示其直方图

数字图像处理实验报告

数字图像处理实验 报告 学生姓名:学号: 专业年级: 09级电子信息工程二班

实验一常用MATLAB图像处理命令 一、实验内容 1、读入一幅RGB图像,变换为灰度图像和二值图像,并在同一个窗口内分成三个子窗口来分别显示RGB图像和灰度图像,注上文字标题。 实验结果如右图: 代码如下: Subplot (1,3,1) i=imread('E:\数字图像处理\2.jpg') imshow(i) title('RGB') Subplot (1,3,2) j=rgb2gray(i) imshow(j) title('灰度') Subplot (1,3,3) k=im2bw(j,0.5) imshow(k) title('二值') 2、对两幅不同图像执行加、减、乘、除操作,在同一个窗口内分成五个子窗口来分别显示,注上文字标题。 实验结果如右图: 代码如下: Subplot (3,2,1) i=imread('E:\数字图像处理 \16.jpg') x=imresize(i,[250,320]) imshow(x) title('原图x') Subplot (3,2,2) j=imread(''E:\数字图像处理 \17.jpg') y=imresize(j,[250,320]) imshow(y) title('原图y') Subplot (3,2,3) z=imadd(x,y) imshow(z)

title('相加结果');Subplot (3,2,4);z=imsubtract(x,y);imshow(z);title('相减结果') Subplot (3,2,5);z=immultiply(x,y);imshow(z);title('相乘结果') Subplot (3,2,6);z=imdivide(x,y);imshow(z);title('相除结果') 3、对一幅图像进行灰度变化,实现图像变亮、变暗和负片效果,在同一个窗口内分成四个子窗口来分别显示,注上文字标题。 实验结果如右图: 代码如下: Subplot (2,2,1) i=imread('E:\数字图像处理 \23.jpg') imshow(i) title('原图') Subplot (2,2,2) J = imadjust(i,[],[],3); imshow(J) title('变暗') Subplot (2,2,3) J = imadjust(i,[],[],0.4) imshow(J) title('变亮') Subplot (2,2,4) J=255-i Imshow(J) title('变负') 二、实验总结 分析图像的代数运算结果,分别陈述图像的加、减、乘、除运算可能的应用领域。 解答:图像减运算与图像加运算的原理和用法类似,同样要求两幅图像X、Y的大小类型相同,但是图像减运算imsubtract()有可能导致结果中出现负数,此时系统将负数统一置为零,即为黑色。 乘运算实际上是对两幅原始图像X、Y对应的像素点进行点乘(X.*Y),将结果输出到矩阵Z中,若乘以一个常数,将改变图像的亮度:若常数值大于1,则乘运算后的图像将会变亮;叵常数值小于是,则图像将会会暗。可用来改变图像的灰度级,实现灰度级变换,也可以用来遮住图像的某些部分,其典型应用是用于获得掩膜图像。 除运算操作与乘运算操作互为逆运算,就是对两幅图像的对应像素点进行点(X./Y), imdivide()同样可以通过除以一个常数来改变原始图像的亮度,可用来改变图像的灰度级,其典型运用是比值图像处理。 加法运算的一个重要应用是对同一场景的多幅图像求平均值 减法运算常用于检测变化及运动的物体,图像相减运算又称为图像差分运算,差分运算还可以用于消除图像背景,用于混合图像的分离。

数据结构图及其应用实验报告+代码

附件2: 北京理工大学珠海学院实验报告 ZHUHAI CAMPAUS OF BEIJING INSTITUTE OF TECHNOLOGY 实验题目图及其应用实验时间 2011.5.10 一、实验目的、意义 (1)熟悉图的邻接矩阵(或邻接表)的表示方法; (2)掌握建立图的邻接矩阵(或邻接表)算法; (3)掌握图的基本运算,熟悉对图遍历算法; (4)加深对图的理解,逐步培养解决实际问题的编程能力 二、实验内容及要求 说明1:学生在上机实验时,需要自己设计出所涉及到的函数,同时设计多组输入数据并编写主程序分别调用这些函数,调试程序并对相应的输出作出分析;修改输入数据,预期输出并验证输出的结果,加深对有关算法的理解。 具体要求: (1)建立图的邻接矩阵(或邻接表); (2)对其进行深度优先及广度优先遍历。 三、实验所涉及的知识点 1.创建一个图: CreateUDN(MGraph &G) 2.查找v顶点的第一个邻接点: FirstAdjVex(MGraph G,int v) 3. 查找基于v顶点的w邻接点的下一个邻接点: NextAdjVex(MGraph G,int v,int w) 4.图的矩阵输出: printArcs(MGraph G) 5:顶点定位: LocateVex(MGraph G,char v) 6. 访问顶点v输出: printAdjVex(MGraph G,int v) 7. 深度优先遍历: DFSTraverse(MGraph G,Status (*Visit)(MGraph G,int v)) 8. 广度优先遍历BFSTraverse(MGraph G,Status (*Visit)(MGraph G,int v)) 9. DFS,从第v个顶点出发递归深度优先遍历图G: DFS(MGraph G,int v) 四、实验记录 1.对顶点的定位其数组下标,利用了找到之后用return立即返回,在当图顶点 多的情况下节省了搜索时间,程序如下 //对顶点v定位,返回该顶点在数组的下标索引,若找不到则返回-1 int LocateVex(MGraph G,char v){ for (int i=0;i

数字图像处理实验一(附源程序)

数字图像处理—实验一 一.实验内容: 图像灰度变换 二.实验目的: 学会用Matlab 软件对图像灰度进行变换;感受各种不同的灰度变换方法对最终图像效果的影响。 三.实验步骤: 1.获取实验用图像:rice.jpg. 使用imread 函数将图像读入Matlab 。 2.产生灰度变换函数T1,使得: 0.3r r < 0.35 s = 0.105 + 2.6333(r – 0.35) 0.35 ≤ r ≤ 0.65 1 + 0.3(r – 1) r > 0.65 用T1对原图像rice.jpg 进行处理,使用imwrite 函数保存处理后的新图像。 3.产生灰度变换函数T2,使得: s = 用T2对原图像rice.jpg 进行处理,使用imwrite 保存处理后的新图像。 4.分别用 s = r 0.6; s = r 0.4; s = r 0.3 对kids.tiff 图像进行处理。为简便起见,请 使用Matlab 中的imadjust 函数。使用imwrite 保存处理后的新图像。 5.对circuit.jpg 图像实施反变换(Negative Transformation )。s =1-r; 使用 imwrite 保存处理后的新图像。 6.对rice.jpg 图像实施灰度切片(Gray-level slicing )。具体要求如下: 当0.2 ≤ r ≤ 0.4时,将r 置为0.6, 当r 位于其他区间时, 保持其灰度与原图像一样。使用imwrite 保存处理后的新图像。 7.利用灰度变换对Picture.jpg 做增强处理,突出图中的人物,改善整个图像过 于灰暗的背景。通过调节参数,观察变换后的图像与原始图像的变化,寻找出最佳的灰度变换结果。写出所采用的拉伸表达式。(提示:用imhist 观察图像直方图,利用分段线性灰度变换。 )

细胞个数实验报告doc

细胞个数实验报告 篇一:细胞计数实验报告 细胞计数实验报告 一、目的 培养的细胞在一般条件下要求有一定的密度才能生长良好,所以要进行细胞计数 二、原理 细胞计数的原理和方法与血细胞计数相同。显微镜直接计数法是将一定稀释的菌体或孢子悬液注入血球计数板的计数室中,于显微镜下直接计数的一种简便、快速、直观的方法。因为计数板是一块特别的载玻片。其上由四条槽构成三个平台;中间较宽的平台又被一短横槽隔成两半,每一边的平台上各刻有一个方格网,每个方格网共分为九个大方格,一个大方格分成16个中方格,每个中方格又分成25个小方格,无论哪种每个大方格中的小方格都是400个。每一个大方格边长为0.1mm,所以计数室的容积为0.1mm3。计数时,通常只用4个四周大方格内的细胞数即可。然后求出每个大方格的平均值,即得出一个大方格中的平均细胞数,再换算成lml菌液中的总细胞数。若设大方格中平均细胞数为N,菌液稀释倍数为M,则计算方法为: lml菌液中的总菌数=平均每个中格中菌的个数=10000xMxN=10000MN(个)

三、实验材料 普通显微镜、血球计数板、试管、吸管,微量移液管、细胞悬浮液 四、实验步骤 1、将血球计数板及盖片用擦试干净,并将盖片盖在计数板上。 2、将细胞悬液吸出少许,注射在盖片边缘,使悬液充满盖片和计数板之间。 3、镜下观察,计算计数板四大格细胞总数,压线细胞只计左侧和上方的。然后按下式计算: 细胞数/ml=4大格细胞总数/ 4×10000 注意:镜下偶见由两个以上细胞组成的细胞团,应按单个细胞计算,若细胞团占10%以上,说明分散不好,需重新制备细胞悬液 五、实验结果 六、讨论与反思 注意多计数几次,求平均值 细胞要比较均匀的分布,四个大方格上的细胞数不应相差太多,否则重新混匀细胞悬浮液,再次计数 篇二:细胞生物学实验报告 染色体标本的制备及观察 泮力菁 XX00140091XX级生物基地同组者:商倩倩

数字信号处理第三次实验代码及波形图

数字信号处理第三次实验 一、实验目的: 1、掌握离散时间系统的DFT的MATLAB实现; 2、熟悉DTFT和DFT之间的关系。 3、了解信号不同变形的DFT与原信号DFT之间的关系 二、实验内容: 1.开发一个时域圆周移位的matlab函数cirshift.m并测试:设x(n)=[9 8 7 6 5 4 3],求x((n-4))8R8(n)以及x((n+5))8R8(n)。 function y=cirshift(x,m,N) %长度为N的x序列(时域)作m点圆周位移 %------------------------------------- %[y]=cirshift(x,m,N) %y=包含圆周位移的输出序列 %x=长度<=N的输入序列 %m=移位样点数 %N=圆周缓冲器长度 %方法:y(n)=x((n-m)mod N) %check for length of x if length(x)>N error('N必须>=x的长度') end x=[x zeros(1,N-length(x))];%将x补零到长度为N n=[0:1:N-1]; n=mod(n-m,N); y=x(n+1); %主函数.m clc;clear all; x=[9 8 7 6 5 4 3]; y1=cirshift(x,4,8); y2=cirshift(x,-5,8);

2. 开发一个圆周翻转的matlab函数cirflip.m并测试:设x(n)=[9 8 7 6 5 4 3 2 1],求x(n)的16点圆周翻转x((-n))16R16(n)。 function y=cirfilp(x,N) nx=[0:1:N-1]; y=x(mod(-nx,N)+1); %主函数.m clc;clear all; x=[9 8 7 6 5 4 3 2 1]; N=16; x=[x zeros(1,N-length(x))]; nx=0:N-1; y=cirfilp(x,16);

数字图像处理实验程序MATLAB.

实验一 内容(一) (1)彩色图像变灰度图像 A=imread('1.jpg'); B=rgb2gray(A); figure subplot(1,2,1), imshow(A) title('原图') subplot(1,2,2), imshow(B) title('原图灰度图像') (2)彩色图像变索引图像 A=imread('1.jpg'); figure subplot(1,2,1), imshow(A) title('原图') [X,map]=rgb2ind(A,128); subplot(1,2,2), imshow(X,map) title('原图索引图像') (3)彩色图像变二值图像 A=imread('1.jpg'); figure subplot(1,2,1), imshow(A) title('原图') C=im2bw(A,0.2); subplot(1,2,2), imshow(C) title('原图二值图像') (4)灰度图像变索引图像(一) A=imread('1.jpg'); figure B=rgb2gray(A); subplot(1,2,1), imshow(B) title('灰度图像') C=grayslice(B,39); subplot(1,2,2), imshow(C) title('灰度变索引图像')

(5)灰度图像变索引图像(二) A=imread('1.jpg'); figure B=rgb2gray(A); subplot(1,2,1), imshow(B) title('灰度图像') [X,map]=gray2ind(B,63); subplot(1,2,2), imshow(X,map) title('灰度变索引图像') (6)灰度图像变彩色图像 A=imread('1.jpg'); figure B=rgb2gray(A); subplot(1,2,1), imshow(B) title('灰度图像') C=gray2rgb(B,map); subplot(1,2,2), imshow(C) title('灰度变彩色图像') 内容(二) (1)灰度平均值 A=imread('1.jpg'); figure B=rgb2gray(A); subplot(1,2,1), imshow(B) title('灰度图像') B=double(B); [m,n]=size(B); sumg=0.0; for i=1:m; for j=1:n; sumg=sumg+B(i,j); end end avg=sumg/(m*n) % 均值 maxg=max(max(B)) % 区域最大灰度ming=min(min(B)) % 区域最小灰度 (2)彩色平均值

大数据库原理上机实验 代码及截图

《数据库原理》上机实验报告 2017年11月

一、实验目的与要求: ●熟练使用SQL定义子语言、操纵子语言命令语句 ●掌握关系模型上的完整性约束机制 ●掌握一定的数据库管理技术 ●能完成简单的数据库应用开发 二、实验内容 1、实验一到实验十七 (一)数据定义子语言实验(2学时) 实验1:利用SQL语句创建Employee数据库 代码如下: create database Employee; 运行结果: 实验2:利用SQL语句在Employee数据库中创建人员表person、月薪表salary 及部门表dept, 暂不定义外键约束。 要求:按表1、表达、表3中的字段说明创建 表1 person表结构 字段名数据类型字段长度允许空否字段说明

表2 salary表结构 表3 dept表结构 代码如下: create table person( P_no char(6) not null primary key, P_name varchar(10) not null, Sex char(2) not null, Birthdate datetime null, Prof varchar(10) null, Deptno char(4) not null ); create table salary( P_no char(6) not null primary key, Base dec(5) null, Bonus dec(5) null, Fact dec(5) null, Month int not null ); create table dept( Deptno char(4) not null primary key, Dname varchar(10) not null );

计算机图形学实验代码及截图分解

目录 实验一:OpenGL基础知识 (1) 实验二 OpenGL中的建模与变换 (2) 实验三 OpenGL中的光照 (5) 实验四 OpenGL中的拾取 (8) 实验五 OpenGL中的纹理映射 (11)

实验一:OpenGL基础知识 一、实验目的 1、建立Windows系统下的OpenGL实验框架。 2、学习理解OpenGL工作流程。 二、实验环境 ⒈硬件:每个学生需配备计算机一台。 ⒉软件:Visual C++; 三、实验内容 1、建立非控制台的Windows程序框架。 2、建立OpenGL框架。 3、建立OpenGL框架的类文件。 4、完善Windows框架。 5、理解程序间的相互关系。 四、实验要求 1、学习教材第2章的内容。 2、理解教材中相关实例的代码,按要求添加到适当的地方,调试并通过运行。 3、运行结果应该与教材中的相关实例相符。 4、编译第2章的框架代码,修改背景色、窗口标题。 五、程序设计提示 (略) 六、报告要求 1.认真书写实验报告,字迹清晰,格式规范。报告中应写清姓名、学号、实验日期、实验题目、实验目的、实验原理。 2.报告中应书写主要源程序,且源程序中要有注释。 3.报告中应包含运行结果及结果分析。如调试通过并得到预期的效果,请注明‘通过’并粘贴运行效果图;如未调试通过或结果不正确,试分析原因。 4.报告最后包含实验总结和体会。

实验二 OpenGL中的建模与变换 一、实验目的 1.学习配置OpenGL环境。 2.掌握在OpenGL中指定几何模型的方法。 3. 掌握OpenGL中的透视投影和正投影的设置方法,学会诊断投影问题导致的显示异常。 二、实验环境 ⒈硬件:每个学生需配备计算机一台。 ⒉软件:Visual C++; 三、实验内容 1.建立OpenGL编程环境 (注:Windows自带gl和glu,还需要安装glut库文件。) (a)查看Windows自带的OpenGL文件。在文件夹c:\windows\system32下查看是否存在文件opengl32.dll和glu32.dll;在Visual Studio的安装目录Vc7\PlatformSDK\Include\gl下查看是否存在gl.h和glu.h;在Vc7\PlatformSDK\Lib下是否存在opengl32.lib和glu32.lib。 (b)安装glut库。将文件glut.h复制到Visual Studio的安装目录Vc7\PlatformSDK\Include\gl下;将文件glut32.lib复制到Vc7\PlatformSDK\Lib下;将文件glut32.dll复制到c:\windows\system32下。 2.OpenGL几何建模 (a)建立基本的几何图元,指定图元的颜色,对图元进行平移、旋转、缩放变换。基本几何图元包括: GL_LINES(线)、GL_LINE_STRIP(线带)、GL_LINE_LOOP(线环)、GL_TRIANGLES(三角形)、GL_TRIANGLE_STRIP(三角形带)、GL_TRIANGLE_FAN(三角形扇)、GL_QUADS(四边形)、GL_QUAD_STRIP(四边形带)、GL_POLYGON(多边形)。 (b) 设置合适的投影参数,分别用透视投影和正投影显示步骤(a)中指定的几何图元。 (c) 每按下鼠标左键一次,模型向右旋转一定角度。 (d) 按下ESC键,退出程序。

相关文档
相关文档 最新文档