图象处理系统的制作方法

文档序号:96869阅读:297来源:国知局
专利名称:图象处理系统的制作方法
本发明涉及用来产生一个满区域或描绘图象的图象处理系统,此图象是用一个图象再生装置再生成的,诸如一台图象显示装置,带有一个阴极射线管或带有一个打印头的图象打印机。本发明特别涉及一个适合在光栅型阴极射线显示器中,显示一个满区域图象的图象处理系统。
用一系列线段或一系列矢量给出组成一幅图象的轮廓线,并且忽略掉水平线段。除水平线段外的每一线段,通过从起点到终点的坐标地址,并以自顶到底或自底到顶的一个方向来表明。于是在X-Y坐标系统中,将线段变换至近似的象素,并储存在一随机存储器中。按照每一水平线一个象素代表每个线段的这一规则,将每条线段的那些象素存储在工作存储器中,并且在工作存储器中读出对应坐标地址的象素数值,去掉起点,然后进行象素的异门运算写入。于是,轮廓线的偶数象素存在于工作存储器的每一水平线上。因此,区域填满能够用扫描存储器的每一水平线,并且通过从一奇数轮廓线象素,到一偶数轮廓线象素接通象素存储器单元来实现。这种技术能够容易地完成区域填满,甚至可用于任何复杂的图象上。
区域填满或描绘是图象处理系统中的一种基本的处理图象功能,并且曾提出过各种技术。最基本的技术是用软件对指定的区域以每一象素逐一填满于一随机存取存储器中,以致在指定的区域填满所有的象素。然而,用软件填满区域存在着处理时间较长的问题。
美国专利NO,4,189,743公开了一种区域填满技术,其中写入一随机存取存储器的一个封闭轮廓线区中任何一点,可选作种子点,此区域填满是这样完成的,首先通过在轮廓线范围内的种子点填满象素线,然后通过填满邻近于这条象素线的象素线,并且重复这样的过程,此过程需要非常复杂的程序。
日本审查过的专利公告号NO,40179/79公开了显示一种满区域图象技术,在这种技术中,用有选择地省去一些轮廓线点来写出一轮廓线图形,以致在一刷新存储器中的每一象素线包括了偶数轮廓线点。当象素线以光栅型阴射线管扫描同步读出时,加于阴极射线管的视频信号接通于奇数轮廓线点,并且关掉了偶数轮廓线点。然而,该专利具有这样的问题,即由于省掉一些明显的点,填满图象出现了畸变、处理图象受到了限制并且不能在刷新存储器中处理图象。此专利未公开方位矢量数据的应用和终点处理以及用本发明的异门进行区域填满技术。
因此,本发明的目的是提供一图象处理系统,该系统基于以矢量数据代表一系列线段构成图象轮廓的方法,能高速和容易地产生一个复杂的满区域图象。
本发明按照予定规则产生轮廓线,并把它们储存在一随机存取存储器中。轮廓线以一系列线段或矢量来确定,但是不用水平线段。除水平线段外,每一线段都用从顶部到底部或从底部到顶部一个方向来确定,并转换成近似的象素。每一线段都表示在每一水平基线的一个象素上,但它的起点没有写出。每一象素通过象素数据的异门操作写入随机存取存储器中,而此数据从随机存取存储器相应的坐标地址读出。因此,偶数轮廓线象素存在于随机存取存储器内的每一水平线中,以致任何复杂图象可用奇-偶反转写入的方法,很容易地进行区域填满。
首先,对按照本发明的区域填满技术的概要和其中所用的处理规则作一说明。
图2示出了写在随机存取存储器中的闭合轮廓线的象素点,此存储器储存对应于二维平面XY的二维图象的象素数据。假设对每条水平象素线扫描轮廓线象素,并且用奇-偶反转写入方法进行区域填满,其中各点是这样安排进行的,即从一奇数轮廓线象素到下一个偶数象素。如奇数轮廓线象素存在于一象素线上,于是便产生这样一个问题,即不待填满的区域,诸如图2中的l1,l2,l3和l4将被填满,而待填满的区域诸如线l3的虚线部分却不被填满。
如图3(A)所示,本发明以这样一种方式将轮廓线写在随机存取存储器中,以致每一象素线总是含有偶数轮廓线象素,因此用奇-偶反转写入法可以容易地将区域填满。在图3中,“X”表示没有写入的一个轮廓线象素。
按照本发明,构成一个图象的轮廓线,是用一系列的线段或矢量表示的。线段可转换为近似的象素点,根据每条线段所指明起点和终点的坐标数据,将它们储存在随机存取存储器中。本发明利用下列五条规则来写入图3所示的轮廓线象素。
规则1不写水平线段。
规则2把每条线段表示在每条水平基线的一个象素上。
规则3不写每条线段的起点。
规则4利用象素数据(它贮存在存储器内该象素想要写入的地
址中)进行异门逻辑运算来写轮廓线象素。
规则5以一个方向从顶至底或从底至顶确定每一线段。
规则1用以防止奇数轮廓线象素由于包含在一个水平线区域的轮廓线象素的存在而出现在一条线上,诸如图2中线l2上的象素P1-P2。因为有很多水平线用于通常的图象处理中。省掉水平线段,也可提高区域填满处理的速度。
规则2是表示以每条线上的一个象素轮廓与线段的角度无关。例如在图4的情形中,相近各点产生的线段具有起点S和终点E,并与水平线构成小于45°的角,而且多数的点产生在一条直线上。在这种情形下,首先产生的点d1和d2用作轮廓线点,但是随后产生的点d3和d4没有写出。
规则3用以消去向上或向下的顶点。如果在一个方向上确定线段,例如按照规则5从顶至底规则3消去轮廓线象素P5和P10,这些点在图2中是向上的顶点。
规则4和5消去顶点的轮廓线象素,此顶点和用规则3处理点的方向相反(比例见第7页)。
现在说明写出图3(A)中轮廓线象素图形的程序。在图3中的轮廓用6条线段确定。假设这些线段指定的方向为从顶到底,它们用P5→P3,P5→P6,P6→P7,P10→P7,P10→P12和P1→P15来表示。象素P1-P2,P13-P14因系水平线段而略去。对于线段P5→P3,由于象素P5为起点而没有写出,但是下面的象素写出了,直到终点象素P3。这种写入通过待写的象素数据和从存储器地址中读出的象素数据(前面的数据待写入到该地址中)的异门逻辑写入来完成的。假设用二进制的1来代表轮廓线象素,而存储器读出的数据为二进制的0,则可以这样来写出轮廓线象素点数据。
同样,对于线段P5→P6,其起点P5没有写出,但是其余的象素均置位于二进制的1。对于线段P6→P7,虽然起点P6没有写出,但P6已作为线段P5→P6写出了。在起点P6之后的(包括终点P7)各象素用异门逻辑运算写入。
对于线段P10→P7没有写出起点P10,但是写出了起点以后的各象素。因为终点P7为二进制的1,作为线段P6→P7写出的结果,终点P7的异门逻辑运算写入将它恢复为二进制的0,并且从轮廓线上消去向下的顶点P7。与此类似也写出线段P10→P12和P1→P15轮廓线的各点。
在轮廓线象素完全写入后,对存储器中每条线进行扫描,并且完成填满工作,这样对存储器的点从奇数轮廓线象素到下一个出现的偶数轮廓线象素以二进制的1填满。在这种情形中,由于下面所讨论的原因,最好取偶数轮廓线象素为二进制的0。通过从存储器中读出每行象素数据,并取每一象素和同一线上紧挨着前面的象素进行异门逻辑运算,以及写出其结果,可以令人满意地完成写入程序。因此如图3(B)所示,在奇数轮廓线各象素后面的二进制0象素,均置于二进制的1。虽然象素P10在写轮廓线时消去,它在填满工作期间置于二进制的1。在开始时被忽略的象素P13和P14也被填满了。开始时被消去的象素P1-P2,P5-P7,均从满区域图象中除去。这里要注意的是在P3,P4,P8,P9和P15-P16每条线上的所有偶数轮廓线象素,均通过异门逻辑填满操作被除去。因此,结果图象的畸变和上面提到的日本审查过的专利公告号No·40179/79的方法相比,可使它减到最小,在该专利号中各顶点简单的略去了。而且偶数轮廓线象素的消除提供了一个优点,即容易产生相近的图象。这将在以下说明。
图1表示应用在一个光栅扫描型阴极射线管图象显示系统的本发明的实施例。一个微处理器10通过一地址线12和一数据线14连接到一个刷新存储器50上,然后将刷新存储器接到一光栅扫描型阴极射线管显示器70。刷新存储器50是一个随机存取存储器,它具有一些储存单元以对应于显示器70的各个象素点。这个显示系统也包括一轮廓线书写满区域控制器20,一个线段-象素点变换器30,和一个工作存储器60,此存储器用来储存一满区域图象。虽然这种实施例在工作存储器60中产生了一满区域图象,但为了显示将此存储器60又写入刷新记忆器50中,这样,就可能把一个满区域图象直接写入刷新存储器50中。然而,最好使用一个分开的工作记忆器60,这是因为如果刷新存储器具有任何图象数据时,控制将变得非常复杂。特别是当在刷新存储器中执行图象处理时,利用工作存储器是有其优越性的。当然,刷新存储器50和工作存储器60实际上不需要分开,但可以是单个存储器中分开的区域。
工作存储器60相似于刷新存储器,它是一个随机存取存储器,此存储器具有对应于显示器70上所显示二维图象的象素点的储存单元。按照上面提到的过程,利用在工作存储器60中写入轮廓线象素,然后将轮廓线所限定的区域中的储存单元置于二进制1,于是在工作存储器60中形成一满区域图象。
在运用中,鉴于图3所说明的那样,微处理机10对一系列线段的起点和终点顺序地提供坐标地址,而这些线段组成待填满区域图象的轮廓。一次一个线段地完成该过程。每线段利用线段-象素点变换器30变换至近似的象素点。
在该实施例中,变换器工作于布列逊海姆(Bresenham)的十进位算法下。布列逊海姆算法是众所周知的,正如公开于“IBM系统杂志”Vol·4,No·1,1965 PP25-30“数字计算机的计算机控制算法”一文中的那样。简单地说,算法产生一些近似点,其方法为以矢量的起点和终点在X坐标间的差和在Y坐标间的差中较大一个差值(△X和△Y)定为长轴,而以差值较小的一个定为短轴,同时要进行选择,从起点至终点对于短轴坐标值,可否以单位坐标值(+1或-1)每次步进,和对于长轴数值,可否以单位坐标值(+1或-1)每次步进。
微处理机10装入长轴起点坐标值、长轴终点坐标值和待分别转换到转换器30的寄存器31、32和33的线段长轴起点坐标值。同样,微处理机10在控制器20的寄存器22中,安置一个信号以指明线段的长轴是X还是Y。这取决于线段的角度。再者,微处理机10在寄存器23和24中安置一个信号以指明,当从线段的起点至终点行进时,长轴和短轴的坐标值将是增大还是减小。在图4所示的例子中,设置长轴=X、长轴-减量和短轴-增量。一个指示轮廓线写入模式的信号亦置于寄存器25中。若△X=△Y,这充分说明X或Y都可作为长轴。
将寄存器31中的长轴起点置于长轴计数器35中,而寄存器33中的短轴起点寄存在计数器36中。长轴计数器35随来自控制逻辑电路21的长轴步进脉冲逐一地增大或减小。这种增大或减小的方向通过寄存器23所设置的值来控制。短轴计数器36随来自计算电路34的短轴步进脉冲逐一地增大或减小。其增大或减小的方向取决于寄存器24所设置的数值。根据上述布列逊海姆的算法,计算电路34定出最近似的点,这是通过选择“短轴=不变”或“短轴=步长1”,每个时刻长轴被步进1来实现。如果短轴=步长1,则产生一短轴步进脉冲。
通过比较器37将长轴计数器35的数值和寄存器32中的长轴终点进行比较,而变换器30连续地工作,直到这些数值相一致。选择器38响应于寄存器22中长轴的指示,如长轴=X,则将长轴计数器35接到X输出,并将短轴计数器36接到Y输出;若长轴=Y,则将长轴计数器35和短轴计数器36相应地接到Y和X的输出。长轴计数器35和短轴计数器36最初包含起点的坐标值,并且每个时刻进行校正,以定出一相近的象素点。
刷新存储器50和工作存储器60以定置在X轴方向的8位字节储存象素数据,并以字节存取。因此,为了将象素地址转换为字节地址,除掉较低的3位将选择器38的X输出的X较高地址字位和从选择器38Y输出的Y地址字位组合,加到地址电路44,以对待写的字节寻址。X输出的较低的三位加到解码器39,并转换为8位图形,即8-象素点图形,其图形以较低三位置于二进制1来表示的象素点(例如,011→00100000)。
每次对工作存储器存取时,在变换器30中就确定一近似的象素点。在轮廓线书写/填满操作中,每个工作存储器的存取周期常常包括读和写二步运算。这用来自控制逻辑电路的读/写信号R/W来控制。在轮廓线书写模式中,首先读出一个字节,它以X输出的高位和选择器38Y输出的字位寻址。该读出的1个字节和译码器39的输出一起加到一异门(EX-OR)40。异门40的输出加到一选择器42,此选择器根据模式选择“异-或”逻辑40的输出,并把它加到门43。
在读完以后的写过程中,需要移去起点,并按照以上提到的规则2和3,以每线一个象素写出轮廓线。控制器20的起点控制电路27响应于来自寄存器25的轮廓线模式信号和写入来自控制逻辑电路21的开始周期时间信号的轮廓线,并在第一个工作存储器存取周期中,通过“或”门29封闭门43。轮廓线控制电路28响应于来自寄存器25的轮廓线模式信号,来自寄存器22的长轴=X的指示和来自计算电路34无短轴步进脉冲的指示,并且当短轴(Y)的值不变时,关闭门43。如图4所描述的那样,当长轴=X时,许多近似点产生在同一X线上。
在这种状态下,变换器30从起点直到终点在连续的周期内不断地产生所有近似象素,同时地址电路44在每个周期内对工作存储器60进行存取,但是不写出起点和不需要的点。
当对每一线段写轮廓线象素时,长轴计数器35的值达到寄存器32中长轴终点的数值,比较器37产生一长轴匹配信号,这个信号加到微处理器10,直到一个线段写完为止。
微处理机10响应于长轴匹配信号,以安置下一线段起点和终点的坐标值于寄存器31,32和33中,并且类似地完成线段对象素点的变换和轮廓线象素的写入。该运行类似地连续进行着直到完成最后线段的处理。微处理机10将填满指令信号(没有表示出)加到以控制器20中的控制逻辑电路21,而控制器响应于在最后线段处理中来自比较器37的长轴匹配信号的产生。控制电路21响应指令信号,以产生一填满模式信号,并且也响应该填满模式信号,开关选择器42接通以产生填满电路41的输出,以通过门43。
控制器20的满地址发生器电路26响应填满模式信号和长轴步进脉冲,并且对寻址电路44产生地址,在工作存储器60中对每一X线一次读出一个字节的数据。图5表示填满地址发生器电路26的一个实例。X起点值,X终点值,Y起点值和Y终点值(由这些点定出围绕已写入工作存储器60的轮廓的任何矩形区域,最好使矩形区域稍大于该轮廓线用微处理机10安置在寄存器81,82,83和84中。在X起点寄存器81和Y起点寄存器84中的值都被装入X计数器86和Y计数器87中。门电路85将长轴步进脉冲加到X计数器86,以响应填满模式信号。因此,X计数器86连续地步进。将X计数器86中去掉较低3位后的位,和Y计数器87中的位,加到寻址电路44作为字节地址。当X计数器86的值和X终点值相等时,比较器88产生X匹配输出,并使Y计数器87增加1,使X计数器86复位,然后将X起点再装入X计数器86。这种运行类似地连续下去,当Y计数器87的值和Y终点值相等时,比较器89产生Y匹配输出。当完成读出指定的矩形区域所有字节时,产生了X和Y两者的匹配输出,并且“与”电路90对微处理机10提供一填满结束信号。
图6表示填满电路41。它包括一锁存器和8个“异-或”逻辑电路。锁存器的输入连接至异门的0位输出,而锁存器的输出以7位接到异门的输入。异门的7-2位接到异门6-0位的输入。读出的字节加到7-0位的输入端。例如,假设读出字节的6位为二进制的1,那么第一个奇数轮廓线象素点6-0位的每个异门产生二进制的1输出。因为锁存器利用复位信号RST(未在图1中表示出)在开始运用之前被复位,而复位信号来自控制逻辑电路21,则7位输出为0,因此,在相同的字节地址中储存了01111111。在写入之后,来自控制逻辑电路21的一写完信号(W/C)(未在图1中表示出),将来自异门0位输出的二进制的1锁入锁存器中,并对异门7位的输入提供二进制的1。因此,只要以后读出二进制0的象素位该电路就连续地产生全为二进制的1输出。假设在一个字节的5位处产生第一偶数轮廓线象素点,则异门5位产生二进制的0,而且4-0位也成为二进制的0。因此,完成了在第一个奇或偶数点之间的填满操作,并且将锁存器置于二进制的0。相似地,当在线上检出第二个奇数点时,完成了对下一个偶数点的填满。在对每一X线完成扫描之后,锁存器也被复位。这个电路使得偶数轮廓线象素被消除了。
在完成填满操作之后,微处理机10提供一个地址至寻址电路44,在工作存储器60中一次一个字节地读出满区域图象,并且将它写在刷新存储器50中。满区域图象可写在刷新存储器50中的任何位置上。在黑白显示情况下,刷新存储器50将有一单个象素存储平面,而在对一象素灰色标度或以具有多位彩色显示的情况下,它将有多个对应于这些位的存储平面。在这种情形下,满区域图象可储存于刷新存储器中,以任意所需要的辉度电平或彩色,用通常将存储地址输入或数据输入加到存储器平面并选择待写入的平面。
最后,本发明的优点说明于下
(1)首先,它能容易地进行区域填满,即使它有许多的向上或向下的顶点,都能以高速度进行区域填满。
(2)它能使移去顶点所得到的原图象畸变减至最小,因为它不仅移去了顶点,而且还把偶数轮廓线象素在填满操作中去掉。
(3)由于略去水平线段,它简化了线段的确定。
(4)它能区域填满一个包含交叉线的图象。例如在图7的图象中,能用二条线段P1→P3和P2→P4确定轮廓线。可将象素P5写入线段P1→P3中,而用异门写出线段P2→P4,储存在二进制的0位上。因此,区域填满可不用交叉处理来完成。
(5)因为消去了偶数轮廓象素,它能产生具有完全与边界相符的相近的图象。
例如在这样的情形下,即将一个满区域图象与邻近于前一个的满区域图象相加,或以不同于前一个图象的彩色来显示的相近满区域图象,这在前一个图象移至刷新存储器之后,需要创造一幅和前一个图象相近的图象。在这种情形下,本发明能用前一图象所使用的线段绘出轮廓线。例如在图3中,若想创造一幅相近的图象,此图象的顶、右和底边和前一图象的相接近,于是相近图象的轮廓可用相同的线段P5→P3,P1→P15,P10→P7和P10→P12来确定。因为象素10没有写出,那里没有发生和前一图象的相互干扰。写出象素P9,P8和P7,同时在填满操作过程中消去象素P11和P12。因此在图象之间没有间隙或重叠。
虽然在这里已对特殊的实施例作了说明,但是显然对本领域的技术人员来说,在本发明的范围内可作种种变更。例如虽然该实施例利用了分离的地址发生器电路26,然而变换器30可用于电路26处,正如线路之间的相似性中所提及的那样。在这种情形下,变换器30的寄存器31,32和33可用于电路26的寄存器81,82和84处,但需要加入一对应于Y终点寄存器83的短轴终点寄存器,一个对应于比较器89的比较器,和一个对应于“与”门电路90的“与”门电路。另外,在填满模式中将需要对短轴计数器36根据短轴步进脉冲选通比较器37的输出。虽然在该实施例中,控制移去起点和每线写入一个象素是利用封锁数据门43来完成的,但也可在变换器30的输出端提供例如一相似的门。
按照本发明,即使是一个复杂的图象,也可以容易地和很快地进行区域填满。
附图的简要说明
图1表示本发明的一种实施例。
图2表示当利用闭合轮廓线时的满区域。
图3表示按照本发明的满区域。
图4表示近似的象素点。
图5表示填满地址发生器电路。
图6表示一个填满电路。
图7表示满区域图象的一个实例。
10…微处理机;20…轮廓线/区域填满控制器;27…起点控制电路;28…轮廓线控制电路;30…线段-象素点变换器;40…异门电路;41…填满电路;50…刷新存储器;60…随机存取工作存储器;70…阴极射线管显示(CRT显示)。
权利要求
1、在一个用图形表示的图象处理系统中,包括一个图象再生装置和一个随机存取存储器,该存储器有储存单元用以储存一个二维图象的象素数据,该处理系统在上述的存储器中产生一区域填满的图象,图象通过上述图象再生装置再生成,其特征在于包括
a)用来确定一系列线段中每一条线段的装置,这些线段除水平线段外在一个方向组成一个图象的轮廓。
b)用来产生每一确定线段的近似象素的装置。
c)响应上述产生装置用来写入象素的装置,这些象素不包含每线段的起点,并以每一水平基线上一个象素代表每一线段,在上述存储器中以象素数据进行异门操作(该数据是从上述存储器中对应的坐标地址中读出),以此建立轮廓线象素。
d)用来逐线对已写入上述随机存取存储器的轮廓线象素进行扫描并且用来在每线的奇数轮廓线象素和紧接着发生的偶数轮廓线象素之间,安置储存单元的装置。
2、根据权利要求
1的用图形表示的图象处理系统,其特征在于上述装置d包括从上述记忆器中每一水平线读出象素数据的装置,和一个填满电路,该电路有一个异门电路,用来对每一象素和在同一水平线上紧靠前的象素的进行异门运算,上述异门操作的结果写入上述的记忆器中做为填入数据,以便通过填入操作消去偶数轮廓线象素。
专利摘要
本发明公布了一种用图形表示的图象区域填满技术。用一系列除水平线段外的线段来确定构成图象的轮廓线。这些线段是在一个方向上确定的,即从顶到底或从底到顶;把它们变换为以每条水平基线一个象素的一些近似象素并写入一个随机存取存储器中,除去起始点。(通过每个近似象素和从存储器中对应地址读出的象素数据进行异门运算。)结果使每一水平线偶数轮廓象素储存在存储器中。因此,通过扫描存储器中每一水平线,并从一奇数轮廓象素到偶数轮廓象素接通象素存储单元很容易实现区域填满。
文档编号G06T11/40GK86100088SQ86100088
公开日1986年10月22日 申请日期1986年1月14日
发明者松原茂, 森徹, 田烟俊朗 申请人:国际商业机器公司导出引文BiBTeX, EndNote, RefMan
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1