当前位置:首页 » 操作系统 » 算法点阵

算法点阵

发布时间: 2022-04-24 12:56:15

A. 点阵图与矢量图的区别有哪些

1、 矢量图
矢量图又叫向量图,是用一系列计算机指令来描述和记录一幅图,一幅图可以解为一系列由点、线、面等到组成的子图,它所记录的是对象的几何形状、线条粗细和色彩等。生成的矢量图文件存储量很小,特别适用于文字设计、图案设计、版式设计、标志设计、计算机辅助设计(CAD)、工艺美术设计、插图等。
矢量图只能表示有规律的线条组成的图形,如工程图、三维造型或艺术字等;对于由无规律的像素点组成的图像(风景、人物、山水),难以用数学形式表达,不宜使用矢量图格式;其次矢量图不容易制作色彩丰富的图像,绘制的图像不很真实,并且在不同的软件之间交换数据也不太方便。
另外,矢量图像无法通过扫描获得,它们主要是依靠设计软件生成。矢量绘图程序定义(像数学计算)角度、圆弧、面积以及与纸张相对的空间方向,包含赋予填充和轮特征性的线框。常见的矢量图处理软件有CoreIDRAW、AutoCAD、Illustrator和FreeHand等。
2、位图
位图又叫点阵图或像素图,计算机屏幕上的图你是由屏幕上的发光点(即像素)构成的,每个点用二进制数据来描述其颜色与亮度等信息,这些点是离散的,类似于点阵。多个像素的色彩组合就形成了图像,称之为位图。
位图在放大到一定限度时会发现它是由一个个小方格组成的,这些小方格被称为像素点,一个像素是图像中最小的图像元素。在处理位图图像时,所编辑的是像素而不是对象或形状,它的大小和质量取决于图像中的像素点的多少,每平方英寸中所含像素越多,图像越清晰,颜色之间的混和也越平滑。计算机存储位图像实际上是存储图像的各个像素的位置和颜色数据等到信息,所以图像越清晰,像素越多,相应的存储容量也越大。
位图图像与矢量图像相比更容易模仿照片似的真实效果。位图图像的主要优点在于表现力强、细腻、层次多、细节多,可以十分容易的模拟出像照片一样的真实效果。由于是对图像中的像素进行编辑,所以在对图像进行拉伸、放大或缩小等到处理时,其清晰度和光滑度会受到影响。位图图像可以通过数字相机、扫描或PhotoCD获得,也可以通过其他设计软件生成
位图图像,也称点阵图像或绘制图像,是由称作像素的单个点组成的。当放大位图时,可以看见构成图像的单个图片元素。扩大位图尺寸就是增大单个像素,会使线条和形状显得参差不齐。但是如果从稍远一点

的位置观看,位图图像的颜色和形状又是连续的,这就是位图的特点。矢量图像,也称绘图图像,在数学上定义为一系列点与点之间的关系,矢量图可以任意放大或缩小而不会出现图像失真现象

B. 8*8点阵 是什么

点阵图类型

点阵图是位元阵列,指定矩形阵列 (Rectangular Array) 像素中的每个像素色彩。个别像素的组成位元数将决定指派给该像素的色彩数目。例如,如果每个像素都是由 4 个位元组成,则可将指定像素指派给 16 个不同的色彩之一 (2^4 = 16)。下表将显示一些范例,说明可指派给由指定位元数所表示的像素的色彩数目。

每像素位元数 可指派给像素的色彩数目
1
2^1 = 2

2
2^2 = 4

4
2^4 = 16

8
2^8 = 256

16
2^16 = 65,536

24
2^24 = 16,777,216

储存点阵图的磁片档案通常都会包含一或多个资讯区块,其中存放每像素位元数目、每列的像素数目和阵列的资料列数目等资讯。此类档案可能也会包含色彩表 (又称为色板)。色表会将点阵图的数目对应为特定色彩。下列图示显示一个放大的影像及其点阵图和色表。每个像素都是由 4 位元数字来表示,因此色表中共有 2^4 = 16 个色彩。表格中的每一个色彩都是用 24 位元数字来表示:8 位元用来表示红色、8 位元用来表示绿色,还有 8 位元用来表示蓝色。这些数字是以十六进位 (以 16 为基底) 格式显示:A = 10、B = 11、C = 12、D = 13、E = 14、F = 15。

请看影像的第 3 列及第 5 栏的像素。点阵图中对应的数字为 1。我们可由色表得知 1 代表红色,因此该像素为红色。点阵图顶端列的所有项目都是 3。我们可由色表得知 3 表示蓝色,因此影像顶端列的所有像素都是蓝色。

注意事项
有些点阵图是以由下到上的格式储存;点阵图首列的数目会对应到影像底端列的像素。

将索引储存至色彩表的点阵图称为色板索引点阵图。有些点阵图并不需要色表。例如,如果点阵图使用每像素 24 位元,则该点阵图可储存色彩本身,而非存入色表的索引。下图显示直接储存色彩的点阵图 (每像素 24 位元),而不是使用色表。该图同时显示对应影像的放大检视画面。在点阵图中,FFFFFF 表示白色、FF0000 代表红色、00FF00 为绿色,而 0000FF 则为蓝色。

图形档案格式
您可以使用许多标准格式将点阵图储存在磁片档案中。GDI+ 支援以下各节说明的图形档案格式。

BMP
BMP 是 Windows 用来储存与装置无关 (Device-Independent) 和与应用程式无关的影像的标准格式。指定 BMP 档的每像素位元数 (1、4、8、15、24、32 或 64) 是由档案标头所决定。常见的 BMP 档为每像素 24 位元。通常 BMP 档不会被压缩,因此并不适合透过网际网路传输。

Graphics Interchange Format (GIF)
GIF 是 Web 网页上常见的影像格式。GIF 适用于线条图形、具有实色区块的图片和色彩之间具有明显界线的图片。GIF 可被压缩而且不会在压缩过程中遗失任何资讯;解压缩后的影像将和原始影像完全相同。GIF 的色彩可指定为透明,这样一来影像则可以显示该影像的 Web 网页做为背景色彩。GIF 影像的序列 (Sequence) 可储存在单一档案中,做为动画 GIF。GIF 大部分都储存为每像素 8 位元,这样便可将它们限制在 256 色彩。

Joint Photographic Experts Group (JPEG)
JPEG 是一种压缩结构,适用于自然景观图片,例如扫描的照片。有些资讯可能会在压缩过程中丧失,但肉眼并无法看出变化。JPEG 可储存每像素 24 位元,因此它们可以显示超过 1 千 6 百万个色彩。JPEG 不支援透明效果或动画。

您可以设定 JPEG 影像档的压缩层次,但压缩层次越高 (档案越小),便会丧失较多资讯。通常肉眼无法辨识以 20:1 的压缩比率所产生的影像和原始档案之间的差异。下图将显示 BMP 影像和两个从该 BMP 影像压缩而来的 JPEG 影像。第一个 JPEG 的压缩比率为 4:1,第二个 JPEG 的压缩比率约为 8:1。

JPEG 压缩不适用于线条图形、实色区块和明显的界线。下图将显示一个 BMP 和两个 JPEG 及一个 GIF。这两个 JPEG 和 GIF 都是从 BMP 压缩而来的。GIF 的压缩比率为 4:1、较小的 JPEG 为 4:1,较大的 JPEG 为 8:3。请注意,GIF 中的线条旁仍然出现明显界线,但 JPEG 中的界线似乎比较模糊。

JPEG 是一种压缩结构,而非档案格式。JPEG 档案交换格式 (JFIF) 是常用来储存和传送影像的档案格式,它们是根据 JPEG 结构进行压缩。Web 浏览器显示的 JFIF 档案将使用 .jpg 副档名。

Exchangeable Image File (EXIF)
EXIF 是用于数位相机所撷取的相片档案格式。EXIF 档含有根据 JPEG 规格来压缩的影像。EXIF 档同时含有照片资讯 (拍摄日期、快门速度、曝光时间等资讯) 和相机资讯 (制造商、型号等资讯)。

Portable Network Graphics (PNG)
PNG 格式保留了许多 GIF 格式的优点,同时提供比 GIF 更强大的功能。PNG 档和 GIF 档同样都不会在压缩过程中丧失任何资讯。PNG 档可储存每像素 8、24 或 48 位元的色彩,以及每像素 1、2、4、8 或 16 位元的灰阶。相较之下,GIF 档只能使用每像素 1、2、4 或 8 位元。PNG 档也可储存每个像素的 Alpha 值,指定该像素与背景色彩混用的程度。

PNG 改进了 GIF 渐进式显示影像的功能;当 PNG 收到透过网路连线传送的影像时,可以显示较佳的影像效果。PNG 档可包含 Gamma 修正和色彩修正资讯,这样一来可将影像正确地对应到各种不同的显示装置。

Tag Image File Format (TIFF)
TIFF 是一种具有弹性且可延伸的格式,各种平台和影像处理应用程式都支援这种格式。TIFF 档可储存每像素任意位元数的影像,并可使用各种压缩演算法。单一、多页的 TIFF 档可储存数个影像。影像相关资讯 (扫描器制作、主机电脑、压缩类型、方向、每像素范例等等) 可储存在档案中,并可使用标记进行排列。TIFF 格式可依需要 (如情况允许而且必须增加新的标记) 进行延伸

C. 哪位高手能给我解释解释单片机点阵扫描原理不谢谢

谈LED点阵的扫描原理,只要一看LED点阵的原理图就一目了然了,如下图:

图中,A--H可以看做行,1--7看做列;假如我们给点阵送人一个列数据0x80(1000 0000),并且同时送人一个行数据0x7f(0111 1111),此时我们就点亮了这个点阵左上角的那颗LED发光管,如果我们不停的行数据:0111 1111;1011 1111;1101 1111;1110 1111;1111 0111;1111 1011;1111 1101;1111 1110,这8个数据周而复始的送人点阵就是行扫描的过程,这个过程一般采用74HC138等译码器来完成,而在对应的行数据送人的同时也送人1--7的列数据,例如:

行=0111 1111,列=1000 0000

行=1011 1111,列=0100 0000

行=1101 1111,列=1010 0000

行=1110 1111,列=1001 0000

行=1111 0111,列=1000 1000

行=1111 1011,列=1000 0100

行=1111 1101,列=1000 0010

行=1111 1110,列=1000 0001

此时程序循环执行的结果会在点阵屏上显示左上至右下的对角斜线。

仔细想想应该不难理解。

在代码编写上,实现上述功能有很多方法,最长用的就是for循环,如果你网络资料会发现,大凡点阵显示代码中都会在显示函数中引用for循环,而且根据点阵数的不同会有:

for(i=0;i<8;i++)或for(i=0;i<16;i++)或for(i=0;i<32;i++)这就是对于8行、16行、32行点阵的扫描算法。

就说到这里吧,更多的知识请网络搜索吧。

D. 啥叫点阵,字形码信息

点阵就是电脑显示文字的方法
文字以点阵的方式展现在屏幕上
一是一个一个点排列组合成了你面前的汉字
算法:
点阵32X32,就是屏幕32乘方的像素点,1个点用1bit,8bit为1Byte
一行就是32/8,要4Byte,再乘32行,再乘100

必要的话,再除1024,折算成KB.

E. 求助8X8点阵流水灯用三种算法实现变换

DATA SEGMENT MY8255_A EQU 2A0 ;8255的A口地址 MY8255_B EQU 2A1 ;8255的B口地址 MY8255_C EQU 2A2 ;8255的C口地址 MY8255_MODE EQU 2A3 ;8255的控制寄存器地址 MODE_A DB 10010000B ;控制字 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AL,MODE_A MOV DX,MY8255_MODE OUT DX,AL MOV AL, 00000001B CONT: MOV DX,MY8255_A OUT DX, AL CALL DELAY` ROL AL,1 JMP CONT MOV AH,41H INT 21H DELAY PROC PUSH BX PUSH CX MOV BL,10 NEXT: MOV CX,2801 WAIT: LOOP WAIT DEC BL JNZ NEXT POP CX POP BX RET DELAY ENDP CODE ENDS END START

F. 什么是点阵图(CDR中)

就是位图,PS制作出来的那种

一般来说点阵图和位图是一个概念。它是由n多的像素组成的。

它的概念主要是相对于区别矢量图而言的。点阵图和矢量图是现代计算机平面图形的两大概念。

-----------------------以下解释可以作为参考:
位图[bitmap],也叫做点阵图,删格图象,像素图,简单的说,就是最小单位由象素构成的图,缩放会失真。构成位图的最小单位是象素,位图就是由象素阵列的排列来实现其显示效果的,每个象素有自己的颜色信息,在对位图图像进行编辑操作的时候,可操作的对象是每个象素,我们可以改变图像的色相、饱和度、明度,从而改变图像的显示效果。举个例子来说,位图图像就好比在巨大的沙盘上画好的画,当你从远处看的时候,画面细腻多彩,但是当你靠的非常近的时候,你就能看到组成画面的每粒沙子以及每个沙粒单纯的不可变化颜色。

矢量图[vector],也叫做向量图,简单的说,就是缩放不失真的图像格式。矢量图是通过多个对象的组合生成的,对其中的每一个对象的纪录方式,都是以数学函数来实现的,也就是说,矢量图实际上并不是象位图那样纪录画面上每一点的信息,而是纪录了元素形状及颜色的算法,当你打开一付矢量图的时候,软件对图形象对应的函数进行运算,将运算结果[图形的形状和颜色]显示给你看。无论显示画面是大还是小,画面上的对象对应的算法是不变的,所以,即使对画面进行倍数相当大的缩放,其显示效果仍然相同[不失真]。举例来说,矢量图就好比画在质量非常好的橡胶膜上的图,不管对橡胶膜怎样的常宽等比成倍拉伸,画面依然清晰,不管你离得多么近去看,也不会看到图形的最小单位。

G. 1616点阵怎样实现汉字上下左右移动移动的算法核心思想是什么谢谢大神们

先显示出一个用32个字节数组表示字模的字符,根据你的字模排列顺序,你在纸上画一下,顺序左移时,每一步,每一个方向自动时,前后字模数据的变化规律,然后按照规律设计程序,实现每一步平移的字模。

H. LED点阵问题!做过点阵显示的高手进!

你好,我的毕业设计是16*16的点阵显示+光笔手写。单片机是AT89S52,也是74154加8550三极管做行驱动,74595做列线驱动,3UD33光敏三极管做感应笔。
先说说我做的工作方式:用动态扫描的方式,即一行行的显示、扫描。主程序中除了初始化程序,就是循环了,循环程序中就只有显示程序,扫描是用定时中断,不知道你有没有用到定时扫描,其实我这里的扫描和显示子程序的原理都是一样的,只是用到的数据不同,显示是从编辑好的字库中调用,而扫描就是逐个点亮,用到的数据比较固定(因为我这里要确定屏幕上具体的位置,所以要逐个点亮,进行整屏扫描,人眼看起来是没有任何显示的)。
因为我的主程序中就只有显示程序(估计就是你所说的扫描),所以,我认为这样已经是单片机的最高频率了,具体的频率是多少因为用C语言编写的,所以没有具体的数据,实际调试中显示是非常稳定的。
是不是可以这样来计算,显示的频率大于50Hz,肉眼看起来就是完整而稳定的画面了。你要做16*64的应该是16行64列对吧,这里的显示就应该是逐行的显示,16行都显示完就是一个周期,(应该确切的说是从第一行显示开始到下一次的第一行显示为止,因为你的程序中可能还有其他的程序要处理,如果和我的一样主程序就只有显示那就是16行都显示完就是一个周期)那么这个周期就应该不超过20ms(20ms对应50Hz),所以每一行显示的时间就不能超过20ms/16=1.25ms,那么你在编写程序中,行显示的子程序执行一次的时间就不能超过1.25ms。
我的行显示的子程序:
/********************************************************************/
/********************************************************************/
sbit da=P2^0;
sbit sh=P2^2;
sbit st=P2^1;
unsigned char hang_disp_number=16; /***16列****/
/********************************************************************/
void hang_disp(unsigned char temp1,unsigned char temp2)
/********************************************************************/
/********************************************************************/
{
unsigned char i;
for(i=0;i<hang_disp_number;i++)
{
if(i==8)temp2=temp1; /********/
{
if(temp2&0x01)da=1;
else da=0;
}
sh=0;sh=1;sh=0; /****模拟串口的时钟****/
temp2=temp2>>1; /****模拟串口的位******/
}
st=0;st=1;st=0; /*****并行输出使能*****/
}
/********************************************************************/
/********************************************************************/

你可以修改成:

/********************************************************************/
/********************************************************************/
sbit da=P2^0;
sbit sh=P2^2;
sbit st=P2^1;
unsigned char hang_disp_number=64;
/********************************************************************/
void hang_disp(unsigned char temp1,unsigned char temp2,unsigned char temp3,unsigned char temp4,unsigned char temp5,unsigned char temp6,unsigned char temp7,unsigned char temp8)
/********************************************************************/
/********************************************************************/
{
unsigned char i;
for(i=0;i<hang_disp_number;i++)
{
if(i==8)temp8=temp7; /********/
if(i==16)temp8=temp6;
if(i==24)temp8=temp5;
if(i==32)temp8=temp4;
if(i==40)temp8=temp3;
if(i==48)temp8=temp2;
if(i==56)temp8=temp1;
{
if(temp8&0x01)da=1;
else da=0;
}
sh=0;sh=1;sh=0;
temp8=temp8>>1;
}
st=0;st=1;st=0; /****并行输出使能****/
}
/********************************************************************/
/********************************************************************/
如果要用到定时器,可以比较准确的确定扫描的频率,而如果把扫描程序放到主程序中,就要和其他的程序好好的分配一下了。
74154和74595到底能扩展多少块点阵这个我也没有试过,如果真要算,我感觉还是根据行扫描不能超过1.25ms,你可以准确的测量你的行显示子程序中传出“一位”数据(即一个循环)的时间t,这里的“一位”就是当前行中的某一列对应的数据,64列就要传出64位。那么最多的列数就是n=1.25/t(这里的1.25也不是固定的,应该看你的具体情况,这里的1.25是按照主程序只有扫描显示来计算的)。
有说的不对的地方,还望多多指教。。。。。。

I. 哪位大侠能告诉我一下点阵字模向左旋转90度的算法。

用数组,将数据转换就可以了。

热点内容
ie缓存删不掉 发布:2024-10-03 00:24:22 浏览:707
一个服务器搭建k8s 发布:2024-10-02 23:56:45 浏览:975
微信源码net 发布:2024-10-02 23:56:44 浏览:131
安卓中通过什么传递数据 发布:2024-10-02 23:48:26 浏览:14
在空间怎么上传视频 发布:2024-10-02 23:44:19 浏览:967
方舟手游非官方服务器有什么用 发布:2024-10-02 23:32:10 浏览:442
压缩海带球 发布:2024-10-02 23:11:31 浏览:578
配置显卡怎么选 发布:2024-10-02 23:11:26 浏览:120
android的环境变量配置 发布:2024-10-02 22:54:23 浏览:924
whereisjava 发布:2024-10-02 22:42:21 浏览:818