当前位置:首页 » 编程软件 » 编程影像平滑

编程影像平滑

发布时间: 2022-10-18 06:30:33

1. 我想使用matlab7.0处理从摄像机获取的图像,怎样编程能使图像变得更清晰

严格来说你对从摄像机获取的图像再处理的话就相当于改变了图像的内容,即是会影响相机的ccd等特性在图像上的反映。
使图像变得更清晰的方法很多,基本来说就是平滑,锐化等基本操作组成的,平滑即相当于去噪,把一些不需要的小的干扰去除,然后加上适当的锐化,即是加强希望要的图像细节等。

2. 基于IWS的土地利用动态变化的影像发布系统构建

朱有法 谢德体 骆云中

(西南大学资源环境学院,重庆,400716)

摘要:为及时、准确地掌握土地资源利用状况,使土地利用动态监测可视化,基于Windows网络环境的B/S体系结构,整合IIS (Internet Information Server)和IWS (Image Web Server),建立影像发布系统。系统采用影像网络服务器、ECWP插件等技术,成功地解决了基于浏览器的遥感影像放大、缩小、漫游,以及图幅范围、目标位置信息显示等问题,实现了海量遥感影像数据的有效管理和快速传输。

关键词:Image Web Server;土地利用;影像发布

土地利用动态管理是要求土地部门能够及时、准确地掌握土地利用的状况,为政府决策、各级土地管理部门制定管理政策和落实各项管理措施提供科学依据[1]。土地利用动态变化影像数据具有实时、可视化等特点。传统WebGIS应用,由于系统模块之间一般为紧耦合、造成系统可移植性较差,互操作能力有限,已经不能满足企业级的应用需求[2]。建立网络土地利用动态变化的影像信息发布系统,对土地资源信息进行网络化管理,使用户在客户端实现土地数据的操作,如漫游、查询、分析等操作,从而使整个土地部门对土地资源信息进行分布式管理,使系统资源达到共享、开放,实现土地利用的动态、实时、可视化管理。

1 系统目标

系统采用影像网络服务器IWS (Image Web Server)实现遥感影像的管理和发布。这是通过Internet/Intranet发送影像数据的专业高性能应用系统,它提供ECWP高性能影像数据流处理(High Performance Streaming Imagery)协议。这个协议为用户远程浏览海量影像提供了一条新的高效率的途径,它允许用户最快的访问任何大小的影像文件,甚至TB级影像[3]。它不同于使用服务器端图像子集选取和解压方式的其他影像数据分布式服务技术,而是直接将压缩的图像传输到客户端的浏览器,由客户端浏览器在本地解压和可视化。

传统的图像媒体格式有 BMP、TIFF、GIF、JPEG 等,这些格式的图像要么体积大,要么有失真,而且在网上传输占有较大带宽[4]。由于土地资源利用变化影像信息传输量大,在保证图像质量的前提下,尽量减少所占用的网络资源,提高数据传输速度。目前采用小波变换和位平面熵编码器生成的ECW和JPEG2000 格式的图像文件具有良好的压缩性能。

1.1 更高的压缩率和压缩方式

在离散小波变换算法中,图像可以转换为一系列更加有效存储像素模块的“子波”,在相同图像质量下比JPEG有更高的压缩比,而且压缩后的图像显得更细腻平滑,特别适合在互联网和遥感图像传输领域应用;压缩一次,有多种解压方式,可以不需要解压整个文件而抽取各种分辨率、质量、分量或空间区域的图像。

1.2 实现渐进传输

不像传统的 JPEG 那样由上到下、从左到右一块一块地慢慢传输、显示,而 IWS (Image Web Server)是首先传输图像的轮廓,然后逐步传输图像质量高的数据,接收端就可以根据不同像素精度(位深度)和图像空间分辨率来重构图像,让图像由朦胧到清晰显示。

1.3 码流的随机访问和处理

允许用户在图像中随机地定义感兴趣区域,使得这一区域的图像质量高于其他图像区域;码流的随机处理允许用户进行旋转、移动、滤波和特征提取等操作。

1.4 支持多源影像数据和海量数据快速压缩

系统实现对多种数据的管理,包括卫星遥感影像、航空遥感影像等的栅格数据,土地利用现状图、土地利用详查图、地籍图等矢量数据,各种统计表格、文本说明以及声音、图片等属性数据。高分辨率的遥感影像的获取,可以迅速得到几周前甚至几天前的最新更新数据,使用户可以及时更新数据库中的数据。通过数据的融合和挖掘,得到用户感兴趣的支持地理投影的土地信息,数据量可达GB、TB级。

2 系统设计

2.1 系统的体系结构

系统关键技术是以IWS为基础,快速将多源数据复合、通过网络集成多种技术成果和数据,进行准确、连续、动态的管理土地资源利用状况,使之具有较高的信息服务水平和信息共享能力。

对于海量卫星遥感影像数据,为了能在浏览器端直接、顺畅、平滑地显示目标影像及其地理信息,考虑现实网络带宽的限制,系统采用ECW、JPEG2000图像压缩技术,基于影像网络服务器IWS (Image Web Server),应用ActiveX插件技术原理,通过在客户端浏览器上安装ECWP插件,以High-performance streaming imagery协议建立起与影像网络服务器IWS (Image Web Server)的联系,然后把取得的数据信息在本地客户端进行解压缩还原处理,实现影像的发布。这种结构既减缓了服务器的运行负担,又提高了数据传输的效率,系统总体结构如图1所示。

系统采用 Browser/Server 结构,其优势在于系统简单、功能强大、扩展能力良好等[5]。B/S模式通过Internet进行通信,可以不受地域的限制。B/S开发模式实际上是分布式的C/S结构在Inernet/Intranet上的扩展,即把一个应用对象从功能结构上划分为三部分:数据处理逻辑、业务处理逻辑和显示逻辑。其中Web服务器是显示逻辑的核心,它将信息组织成超文本,通过超文本标记语言(HTML)和超文本传输协议(HTTP)实现与Browser端的交互;Client端的程序配合相关的应用服务器实现业务处理逻辑;数据处理逻辑由数据库服务器的数据库管理系统来完成,负责管理对数据库的读写操作。各功能之间通过通用的编程接口(如开放数据互连ODBC等)进行连接。

将土地利用动态变化影像信息系统纳入B/S结构的框架后,首先要解决的问题是通过网页访问后台数据库信息。Browser端的应用程序都被分割为页面的形式,用户的交互操作是以提交表单等方式来实现的。ASP (Active Serve Page)是一个Web服务器端的开发环境,属于ActiveX技术中的Server端技术,在服务器端解释执行,执行结果产生动态生成的Web页面并送到浏览器。ASP脚本集成于HTML中,容易生成,无需编译或链接即可直接执行。在ASP脚本中可以方便地引用系统组件和ASP的内置组件,还能通过定制ActiveX服务器组件来扩充功能。利用它可以产生和运行动态的、交互的、高性能的Web服务应用程序。

图1 系统结构设计

2.2 数据库的建立

系统设计采用技术成熟的 TCP/IP 网络通信标准,通过 Hyper Text Transfer Protocol (超文本传输协议)建立客户端与服务器通信。由于土地利用动态变化影像是大量目标资料文件不断入库更新的过程,采用SQL server 2000作为实现动态页面的数据支持数据库,这样就可以生成丰富的、实时的、动态的网页显示到客户端浏览器上。

对于传统的文件格式,利用动态服务网页(ASP)技术,再考虑到响应速度与系统状况的平衡,采用以文件存储与关系数据库存储相结合的数据存储方法,利用 ActiveX DataObject (ADO)数据访问组件,建立ASP页面脚本应用程序与关系数据库的联系,实现输入/输出的快速响应,保证系统的稳定运行。

2.3 系统集成

遥感图像与矢量数据是组成地理信息系统的两大主要数据源,将两者结合起来统一于WebGIS中是WebGIS发展的必然[6]。在解决主要相关技术的基础上,以集成数据库为核心,对土地资源管理信息系统进行了IIS和IWS无缝连接,研制分类浏览,建立书签、资料评价、用户管理、资料管理、资料上传、资料搜索、发布通知等模块。运用公钥加密算法,结合网络操作系统及SQL Server 2000数据库的安全特性,对影像系统用户进行权限等级管理,确保系统的安全性,完成总体集成。

2.4 系统特点

2.4.1 影像传输速度快、占用网络资源少

系统首次采用影像网络服务器(IWS)技术,基于远程窄带网络实现了海量遥感影像信息的快速传输和实时漫游、缩放及坐标显示;实现IIS与IWS无缝结合,支持的文件类型和信息量不受限制,可以无限扩展;仅仅在服务器端启用IIS服务和IWS服务即可,充分利用客户端系统资源,发挥分布式计算的优势,服务器端系统占用资源少,一般应用无需设置专门的高档服务器;客户端实现零安装、免维护,所有操作都实现网络化,不受地域限制,易于实现相关信息共享,提高目标信息的利用效率;基于开放、成熟技术,系统安全、稳定、可靠,易于维护,易于扩展,适应性强,易于推广。

2.4.2 对海量影像数据实现自动化增量动态归类管理与发布

系统采用自动化增量动态归类管理技术,解决了不断扩展的影像信息的类别、层次逻辑关系管理问题,实现了类别的动态自动维护和目标影像的树形结构查询与发布。系统的数据库采用内容动态自动分级的方法,以树状的形式逻辑显示给用户,满足影像信息文件不断增加的需求,并能自动无限扩充。用户还可按照类别进行查找,逐级浏览。

3 系统功能实现

根据系统的目的和要求,整个土地利用动态变化影像信息系统包括数据采集、数据编辑、数据库管理、数据处理、数据输出5个部分,完成土地影像数据的管理、影像数据的处理、土地利用动态变化影像系统的维护以网上发布。系统功能如图2。

图2 系统功能模块结构图

ECW、JPEG2000格式的影像数据是不能直接在浏览器上显示与操控的,从影像服务器上传过来的这类数据必须通过对它进行解压缩、解编码、解量化、小波反变化等一系列处理。为实现ECW、JPEG2000格式图像文件跟浏览器的无缝结合,系统采用ActiveX插件技术,使用一个ECWP插件嵌入到WEB页面中,当用户需要访问ECW、JPEG2000格式图像文件时,浏览器就会下载该插件并自动安装到本地计算机上,此插件支持ECWP协议,以此实现客户端与服务器端影像数据的渐进式传输,对客户端影像的浏览和操纵是利用JavaScript脚本语言实现的。在本系统中,主要实现了对影像的放大、缩小、漫游操作,以及经纬度值、图幅范围等地理信息显示等。

3.1 土地利用变化影像数据的管理

土地影像数据的管理包括土地数据的采集、编辑等工作[7]。数据采集包括各种纸质土地资源图件,如土地利用现状图、土地利用规划图等图件的数字化输入,遥感影像的解译结果的输入、野外实测数据的GPS输入以及各种属性数据的键盘输入等。在土地数据输入的过程中,要检查数据的准确性和精确度,确保进入数据库的数据的精度,同时注意空间数据和属性数据的逻辑关系和拓扑一致性。通过对数据的编辑进行数据的添加、删除、修改等工作,保证发布到网上Internet的土地资源数据是正确的。

3.2 土地利用变化影像数据的处理

土地资源数据的处理除了一般的放大、缩小、漫游、查询以外,还可根据用户端的请求来完成特定的任务,其中包括图像格式的转换、图面相关信息的增强、图像比例尺的拟和、图像的分层叠加、图像的分层处理、图元面积的量算、图元数量的统计、土地属性和空间属性的更新等。图3为实现JPEG2000格式压缩和解压的结构框图:首先对源图像数据进行离散小波变换,然后对变换后的小波系数进行量化,接着对量化后的数据熵编码,最后形成输出码流。解码器是编码的逆过程,首先对码流进行熵解码,然后解量化和小波反变换,最后重建图像数据。

图3 JPEG2000/ECW 编码器和解码器结构框图

3.3 土地利用变化影像数据的维护

土地数据维护包括土地数据代码与字典维护,确保数据库正常运行,随时添加、删除、修改、更新数据库。用户管理包括:可以添加、删除、修改系统的用户,设置用户的权限,合理和安全地控制数据访问权限。数据库维护,包括数据的初始化、数据库的备份、数据库的恢复等功能。

空间数据表达趋向多比例尺、多尺度、动态多维和实时三维可视化[8]。Image Web Server作为土地资源管理信息系统的一种特殊应用领域,为土地资源信息的共享提供了开放的信息空间,为各级土地管理部门、政府机构以及全球用户提供了丰富的土地信息。Internet用户不需要购买软件,就可以通过WWW浏览器访问并利用应用系统的各种功能。一方面,IWS方便了各级土地管理部门的工作;另一方面,利用IWS技术可以实现跨地域大范围的土地资源信息的获取与管理,甚至可以建立大范围的实时土地资源管理信息系统。

参考文献

[1]黄福奎.论遥感技术在土地利用动态监测中的应用[J].中国土地科学,1998,12 (3):21~25

[2]陈静,龚健雅,朱欣焰等.基于J2EE的分布式WebGIS [J].测绘通报,2004 (2):27~30

[3]李青元,张福浩,朱雪华等.Web GIS实现技术探讨.中国图形图像学报,1998,3 (6):485~489

[4]阎君.地理信息共享与开放式地理信息系统技术研究.中国图形图像学报,1998,3 (2):140~145

[5]郑人杰.软件工程.北京:清华大学出版社[M],1995

[6]杨超伟,李琦,承继成等.遥感影像的Web发布研究与实现[J].遥感学报,2000,4 (1):71~75

[7]成四海,吴相林.Web数据库的设计与实现[J].华中理工大学学报,1999,27 (2):110~112

[8]李德仁.浅论21世纪遥感与GIS的发展[J].东北测绘,2002,25 (4):3~5

3. MATLAB编程:图像垂直翻转,水平翻转,提取画面的一部分,和图像亮度调节

I=imread('5L.bmp');
figure,imshow(I)

R=I(:,:,1);
G=I(:,:,2);
B=I(:,:,3);

R1= flipud(R); % 上下翻转
G1=flipud(G);
B1= flipud(B);
I1(:,:,1)=R1;
I1(:,:,2)=G1;
I1(:,:,3)=B1;
figure,imshow(I1)

R2= fliplr(R); % 左右翻转
G2= fliplr(G);
B2= fliplr(B);
I2(:,:,1)=R2;
I2(:,:,2)=G2;
I2(:,:,3)=B2;
figure,imshow(I2)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
I = imread('5L.bmp');
c = [222 272 300 270 221 194];
r = [21 21 75 121 121 75];
% 这里表示你选择的多边形的顶点坐标。本例表示的多边形为一个六边形,顶点坐标依次为:(222,21),(272,21),(300,75),(270,121),(221,121),(194,75)。你可以根据自的实际需要改变。

BW = roipoly(I,c,r); % 获以一个感兴趣区域
figure, imshow(I)

R=I(:,:,1);
G=I(:,:,2);
B=I(:,:,3);
R1=immultiply(R,BW);
G1=immultiply(G,BW);
B1=immultiply(B,BW);
I1(:,:,1)=R1;
I1(:,:,2)=G1;
I1(:,:,3)=B1;
figure,imshow(I1) % 感兴趣区域图像

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
图像增强的方法很多,常用的有immultiply(乘法函数增强图像)、imadjust(通过直方图变换调整对比度)、histeq(直方图均衡化)等。

最简单的的可以给图像乘以一个常数。
I=imread('5L.bmp');
figure,imshow(I)
I1=uint8(I*1.5);
figure,imshow(I1)

imadjust和histeq你查下matlab的帮助。根据你的实际需要进行图像处理。因为我不知道你的图像是灰度还是彩色,需要什么样的效果。这里就不举例了。

4. 安卓编程中 图像的渐变颜色 加上遮罩后失真很严重,原本很平滑的渐变变成了一条一条的,求解决方法

你这图是 9 patch的吧 ,.9的图处理不好 拉伸后效果非常难看,全是条纹,不知道你想要什么效果,如果是渐变的话 你用drawable 文件 处理,shape属性

5. 什么编程语言处理图像好用

photoshop,当让不是可视化版
当然,flash(swf)是最有用的,它显然不仅可以制作图片,还可以制作动画

6. 请问哪位有VB图像处理的代码,谢谢……

Dim w As Long
Dim h As Long

Dim i As Long
Dim j As Long

Dim k As Long

Dim pic(2000, 2000, 2) As Byte
Private Sub waittime(delay As Single)
'延时函数
Dim starttime As Single
starttime = Timer
Do Until ((Timer - starttime) * 70) > delay
DoEvents
Loop
End Sub

Private Sub Command1_Click()
'打开文件(对)
Picture2.Cls
CDlg2.DialogTitle = "打开文件"
CDlg2.Filter = "Pictures(*.bmp)|*.bmp"
CDlg2.ShowOpen
End Sub

Private Sub Command10_Click()
'扩散(对)

n = 3
n1 = n * n
n2 = n / 2
For j = n2 To h - n2 - 1
For i = n2 To w - n2 - 1
xx = Rnd() * (n - 1) - n2
yy = Rnd() * (n - 1) - n2
r = pic(i + xx, j + yy, 0)
g = pic(i + xx, j + yy, 1)
b = pic(i + xx, j + yy, 2)
Picture1.PSet (i, j), RGB(r, g, b)
Next i
Next j

End Sub

Private Sub Command11_Click()
'上下对接(对)

Picture1.Cls
For j = 0 To h / 2
For i = 0 To w - 1
Picture1.PSet (i, j), RGB(pic(i, j, 0), pic(i, j, 1), pic(i, j, 2))
Picture1.PSet (i, h - j - 1), RGB(pic(i, h - j - 1, 0), pic(i, h - j - 1, 1), pic(i, h - j - 1, 2))
Next i
waittime (1)
Next j
Close #1

End Sub

Private Sub Command12_Click()
'左上到右下(对)

Picture1.Cls
Picture1.AutoRedraw = True
Picture1.PSet (0, 0), RGB(pic(0, 0, 0), pic(0, 0, 1), pic(0, 0, 2))
If w > h Then
n = w
Else
n = h
End If
For i = 1 To n - 1
For j = 0 To i
If j < w And i < h Then Picture1.PSet (j, i), RGB(pic(j, i, 0), pic(j, i, 1), pic(j, i, 2))
If j < h And i < w Then Picture1.PSet (i, j), RGB(pic(i, j, 0), pic(i, j, 1), pic(i, j, 2))
Next j
waittime (1)
Next i
Close #1
End Sub

Private Sub Command13_Click()
'中央到四周(对)
Picture1.Cls

xmid = Int(w / 2): ymid = Int(h / 2)
Max = Int((IIf(h < w, w, h) / 2)): Min = Int((IIf(h > w, w, h) / 2))
Picture1.PSet (xmid, ymid), RGB(pic(xmid, ymid, 0), pic(xmid, ymid, 1), pic(xmid, ymid, 2))
For k = 1 To Min
For i = xmid - k To xmid + k '显示四周的水平像素
Picture1.PSet (i, ymid - k), RGB(pic(i, ymid - k, 0), pic(i, ymid - k, 1), pic(i, ymid - k, 2))
Picture1.PSet (i, ymid + k), RGB(pic(i, ymid + k, 0), pic(i, ymid + k, 1), pic(i, ymid + k, 2))
Next i

For j = ymid - k To ymid + k '显示四周的垂直像素
Picture1.PSet (xmid - k, j), RGB(pic(xmid - k, j, 0), pic(xmid - k, j, 1), pic(xmid - k, j, 2))
Picture1.PSet (xmid + k, j), RGB(pic(xmid + k, j, 0), pic(xmid + k, j, 1), pic(xmid + k, j, 2))
Next j
waittime (1)
Next k
If h > w Then '显示非正方形图像的多余高度的垂直像素
For k = Min To Max
For i = 0 To w - 1
Picture1.PSet (i, ymid - k), RGB(pic(i, ymid - k, 0), pic(i, ymid - k, 1), pic(i, ymid - k, 2))
Picture1.PSet (i, ymid + k), RGB(pic(i, ymid + k, 0), pic(i, ymid + k, 1), pic(i, ymid + k, 2))
Next i
waittime (1)
Next k
ElseIf h < w Then '显示非正方形图像的多余宽度的垂直像素
For k = Min To Max
For j = 0 To h - 1
Picture1.PSet (xmid - k, j), RGB(pic(xmid - k, j, 0), pic(xmid - k, j, 1), pic(xmid - k, j, 2))

Picture1.PSet (xmid + k, j), RGB(pic(xmid + k, j, 0), pic(xmid + k, j, 1), pic(xmid + k, j, 2))

Next j
waittime (1)
Next k
End If

Close #1
End Sub

Private Sub Command14_Click()
'斜线式(对)

Picture1.Cls

For d = 0 To w + h
y = d
For x = 0 To d
If x < w And y < h Then
Picture1.PSet (x, y), RGB(pic(x, y, 0), pic(x, y, 1), pic(x, y, 2))

End If
y = y - 1
Next x
waittime (1)
Next d

Close #1
End Sub

Private Sub Command15_Click()
'渐显式(对)

Picture1.Cls
For j = 0 To h - 1 Step 2
For i = 0 To w - 1 Step 2
Picture1.PSet (i, j), RGB(pic(i, j, 0), pic(i, j, 1), pic(i, j, 2))
Next i
Next j
waittime (1)
For j = 1 To h - 1 Step 2
For i = 1 To w - 1 Step 2
Picture1.PSet (i, j), RGB(pic(i, j, 0), pic(i, j, 1), pic(i, j, 2))
Next i
Next j
waittime (1)
For j = 0 To h - 1 Step 2
For i = 1 To w - 1 Step 2
Picture1.PSet (i, j), RGB(pic(i, j, 0), pic(i, j, 1), pic(i, j, 2))
Next i
Next j
waittime (1)
For j = 1 To h - 1 Step 2
For i = 0 To w - 1 Step 2
Picture1.PSet (i, j), RGB(pic(i, j, 0), pic(i, j, 1), pic(i, j, 2))
Next i
Next j
Close #1
End Sub

Private Sub Command16_Click()
'上下移动

Picture1.Cls
Picture1.AutoRedraw = False
For i = 0 To h / 2
BitBlt Picture1.hDC, 0, 0, w, i + 1, Picture2.hDC, 0, h / 2 - i, &HCC0020
BitBlt Picture1.hDC, 0, h - i, w, i, Picture2.hDC, 0, h / 2, &HCC0020
waittime (2)
Next i
End Sub

Private Sub Command17_Click()
'图像交叉飞入
Picture1.Cls
Picture1.AutoRedraw = False
For i = 0 To w - 1
BitBlt Picture1.hDC, 0, 0, i, h / 4, Picture2.hDC, w - i - 1, 0, &HCC0020
BitBlt Picture1.hDC, w - i - 1, h / 4 - 1, i, h / 4, Picture2.hDC, 0, h / 4 - 1, &HCC0020
BitBlt Picture1.hDC, 0, h / 2 - 1, i, h / 4, Picture2.hDC, w - i - 1, h / 2 - 1, &HCC0020
BitBlt Picture1.hDC, w - i - 1, 3 * h / 4 - 1, i, h / 4, Picture2.hDC, 0, 3 * h / 4 - 1, &HCC0020
waittime (1)
Next i
End Sub

Private Sub Command18_Click()
'图像四面八方飞入
Picture1.Cls
Picture1.AutoRedraw = False
If w > h Then
n = w / h
For i = 0 To h / 3 + 1
BitBlt Picture1.hDC, 0, 0, n * i, i, Picture2.hDC, w / 3 - n * i, h / 3 - i, &HCC0020
BitBlt Picture1.hDC, w / 3, 0, w / 3, i, Picture2.hDC, w / 3, h / 3 - i, &HCC0020
BitBlt Picture1.hDC, w - n * i, 0, n * i, i, Picture2.hDC, 2 * w / 3, h / 3 - i, &HCC0020
BitBlt Picture1.hDC, 0, h / 3, n * i, h / 3, Picture2.hDC, w / 3 - n * i, h / 3, &HCC0020
BitBlt Picture1.hDC, w - n * i, h / 3, n * i, h / 3, Picture2.hDC, 2 * w / 3, h / 3, &HCC0020
BitBlt Picture1.hDC, 0, h - i, n * i, i, Picture2.hDC, w / 3 - n * i, 2 * h / 3, &HCC0020
BitBlt Picture1.hDC, w / 3, h - i, w / 3, i, Picture2.hDC, w / 3, 2 * h / 3, &HCC0020
BitBlt Picture1.hDC, w - n * i, h - i, n * i, i, Picture2.hDC, 2 * w / 3, 2 * h / 3, &HCC0020
BitBlt Picture1.hDC, w / 2 - n * i / 2, h / 2 - i / 2, n * i, i, Picture2.hDC, w / 2 - n * i / 2, h / 2 - i / 2, &HCC0020
waittime (3)
Next i
Else
n = h / w
For i = 0 To w / 3 + 1
BitBlt Picture1.hDC, 0, 0, i, n * i, Picture2.hDC, w / 3 - i, h / 3 - n * i, &HCC0020
BitBlt Picture1.hDC, w / 3, 0, w / 3, n * i, Picture2.hDC, w / 3, h / 3 - n * i, &HCC0020
BitBlt Picture1.hDC, w - i, 0, i, n * i, Picture2.hDC, 2 * w / 3, h / 3 - n * i, &HCC0020
BitBlt Picture1.hDC, 0, h / 3, i, h / 3, Picture2.hDC, w / 3 - i, h / 3, &HCC0020
BitBlt Picture1.hDC, w - i, h / 3, i, h / 3, Picture2.hDC, 2 * w / 3, h / 3, &HCC0020
BitBlt Picture1.hDC, 0, h - n * i, i, n * i, Picture2.hDC, w / 3 - i, 2 * h / 3, &HCC0020
BitBlt Picture1.hDC, w / 3, h - n * i, w / 3, n * i, Picture2.hDC, w / 3, 2 * h / 3, &HCC0020
BitBlt Picture1.hDC, w - i, h - n * i, i, n * i, Picture2.hDC, 2 * w / 3, 2 * h / 3, &HCC0020
BitBlt Picture1.hDC, w / 2 - i / 2, h / 2 - n * i / 2, i, n * i, Picture2.hDC, w / 2 - i / 2, h / 2 - n * i / 2, &HCC0020
waittime (3)
Next i
End If
End Sub

Private Sub Command19_Click()
'图像以门帘效果进入
Picture1.Cls
Picture1.AutoRedraw = False
For i = 0 To w / 10 + 1
For j = 0 To 10
BitBlt Picture1.hDC, j * w / 10, 0, i, h, Picture2.hDC, j * w / 10, 0, &HCC0020
Next j
waittime (5)
Next i
End Sub

Private Sub Command2_Click()
'原图像(对)
Picture2.Cls
Open CDlg2.FileName For Binary As #1
Get #1, 19, w
Get #1, 23, h
Seek #1, 55
For j = h - 1 To 0 Step -1
For i = 0 To w - 1
For k = 2 To 0 Step -1
Get #1, , pic(i, j, k)
Next k
Next i
Next j
For j = 0 To h - 1
For i = 0 To w - 1
Picture2.PSet (i, j), RGB(pic(i, j, 0), pic(i, j, 1), pic(i, j, 2))
Next i
Next j
Close #1
End Sub

Private Sub Command20_Click()
'图像以工字效果进入
Picture1.Cls
Picture1.AutoRedraw = False
For i = 0 To w / 3 + w / 6
BitBlt Picture1.hDC, w / 3 - i, h / 3 - i, w / 3 + 2 * i, i, Picture2.hDC, w / 3 - i, h / 3 - i, &HCC0020
BitBlt Picture1.hDC, w / 3 - i, 2 * h / 3, w / 3 + 2 * i, i, Picture2.hDC, w / 3 - i, 2 * h / 3, &HCC0020
BitBlt Picture1.hDC, w / 2 - i, h / 3, 2 * i, h / 3, Picture2.hDC, w / 2 - i, h / 3, &HCC0020
waittime (1)
Next i

End Sub

Private Sub Command3_Click()
'逆反(对)

For j = 0 To h - 1
For i = 0 To w - 1
r = 255 - pic(i, j, 0)
g = 255 - pic(i, j, 1)
b = 255 - pic(i, j, 2)
pic(i, j, 0) = r: pic(i, j, 1) = g: pic(i, j, 2) = b
Picture1.PSet (i, j), RGB(r, g, b)

Next i
Next j

End Sub

Private Sub Command4_Click()
'平滑(不能保存)
n = 3: n1 = n * n: n2 = n / 2
For j = n2 To h - n2–1
For i = n2 To w - n2 - 1
r = 0: g = 0: b = 0
For k1 = -n2 To n2
For k2 = -n2 To n2
r = r + pic(i + k1, j + k2, 0)
g = g + pic(i + k1, j + k2, 1)
b = b + pic(i + k1, j + k2, 2)
Next k2
Next k1
r = r / n1: g = g / n1: b = b / n1

Picture1.PSet (i, j), RGB(r, g, b)
Next i
Next j

End Sub

Private Sub Command5_Click()
'霓虹(对)

For j = 0 To h - 1
For i = 0 To w - 1
x = pic(i, j, 0): y = pic(i + 1, j, 0): z = pic(i, j + 1, 0)

X1 = pic(i, j, 1): Y1 = pic(i + 1, j, 1): z1 = pic(i, j + 1, 0)

X2 = pic(i, j, 2): Y2 = pic(i + 1, j, 2): z2 = pic(i, j + 1, 0)
m = (x - y) ^ 2 + (x - z) ^ 2
o = (X1 - Y1) ^ 2 + (X1 - z1) ^ 2
P = (X2 - Y2) ^ 2 + (X2 - z2) ^ 2

r = Sqr(m)
g = Sqr(o)
b = Sqr(P)
If r > 255 Then r = 255

If g > 255 Then g = 255

If b > 255 Then b = 255
pic(i, j, 0) = r: pic(i, j, 1) = g: pic(i, j, 2) = b

Picture1.PSet (i, j), RGB(r, g, b)
Next i
Next j

End Sub

Private Sub Command6_Click()
'边缘锐化(对)

For j = 1 To h - 1
For i = 1 To w - 1
x = pic(i, j, 0): y = pic(i - 1, j - 1, 0)

X1 = pic(i, j, 1): Y1 = pic(i - 1, j - 1, 1)

X2 = pic(i, j, 2): Y2 = pic(i - 1, j - 1, 2)

r = x - Abs(x - y) / 2
g = X1 - Abs(X1 - Y1) / 2
b = X2 - Abs(X2 - Y2) / 2
If r < 0 Then r = 0

If g < 0 Then g = 0

If b < 0 Then b = 0

Picture1.PSet (i, j), RGB(r, g, b)
Next i
Next j

End Sub

Private Sub Command7_Click()
'浮雕(对)

For j = 0 To h - 1
For i = 1 To w - 1
x = pic(i, j, 0): y = pic(i - 1, j, 0)

X1 = pic(i, j, 1): Y1 = pic(i - 1, j, 1)

X2 = pic(i, j, 2): Y2 = pic(i - 1, j, 2)

r = x - y + 128
g = X1 - Y1 + 128
b = X2 - Y2 + 128
If r <= 0 Then r = 1

If g < 0 Then g = 1

If b < 0 Then b = 1

If r > 255 Then r = 250

If g > 255 Then g = 250

If b > 255 Then b = 250

Picture1.PSet (i, j), RGB(r, g, b)
Next i
Next j

End Sub

Private Sub Command8_Click()
'镶嵌(对)
n = 10: n1 = n * n: n2 = n / 2
For j = n2 To h - n2 - 1 Step n
For i = n2 To w - n2 - 1 Step n

r = 0: g = 0: b = 0
For k1 = -n2 To n2
For k2 = -n2 To n2
r = r + pic(i + k1, j + k2, 0)
g = g + pic(i - k1, j + k2, 1)
b = b + pic(i + k1, j + k2, 2)
Next k2
Next k1
r = r / n1: g = g / n1: b = b / n1
For k1 = -n2 To n2
For k2 = -n2 To n2

Picture1.PSet (i + k1, j + k2), RGB(r, g, b)
Next k2
Next k1
Next i
Next j

End Sub

Private Sub Command9_Click()
'曝光(对)
For j = 0 To h - 1
For i = 0 To w - 1
r = pic(i, j, 0): g = pic(i, j, 1): b = pic(i, j, 2)
If r < 128 Then r = 255 - r
If g < 128 Then g = 255 - g
If b < 128 Then b = 255 - b
pic(i, j, 0) = r: pic(i, j, 1) = g: pic(i, j, 2) = b
Picture1.PSet (i, j), RGB(r, g, b)
Next i
Next j

End Sub

Private Sub Picture2_Click()

End Sub

7. 请问 卫星影像存档数据和编程数据是指什么意思求大神介绍

国内的卫星影像数据平台北京揽宇方圆有详细的解释存档数据:是指先前卫星已经拍摄过的区域,已存档在卫星公司的数据库中,是现成品。该种图像的购买价格相对较低,订购时间较快。但是订购前需要对既定需求区域做出确认,即确认所需区域是否有卫星影像数据存档、卫星影像存档数据的拍摄时间、拍摄质量(包含了云量、拍摄倾角等因素)等。
编程数据:是指编程制定卫星对需求区域拍摄最新的影像,可以让用户得到需求区域最新的影像。但是编程影像的拍摄周期通常较长,订购初期需要先向卫星公司申请拍摄区域的拍摄周期,然后由卫星公司反馈计划拍摄周期。在这个拍摄周期中,并不能够保证拍摄成功,这与所拍摄地的天气情况、拍摄数据的优先级权重以及需求数据范围有关。

8. 怎么用MATLAB掌握图像平移、图像旋转和图像缩放的基本原理与实现方法

%图像平移(1)
F=imread('p2.bmp');
se = translate(strel(1), [0 20]);
%参数[0 20]可以修改,修改后平移距离对应改变
J = imdilate(F,se);
figure;
imshow(J,[]);title('右移后图形');

%图像平移(2)
function outImage=immove(inImage,Tx,Ty)
[m, n] = size(inImage);
Tx=fix(Tx);
Ty=fix(Ty);

%move x
if (Tx<0)
inImage=imcrop(inImage,[abs(Tx),1,m-abs(Tx),n]);
[m, n] = size(inImage);
Tx=0;
end

%move y
if (Ty<0)
inImage=imcrop(inImage,[1,abs(Ty),m,n-abs(Ty)]);
[m, n] = size(inImage);
Ty=0;
end

outImage = zeros(m+Ty, n+Tx);
outImage(1+Ty:m+Ty,1+Tx:n+Tx) = inImage;

%图像旋转
%X,Y为其行列数
Image=imread('02.jpg');
Image=rgb2gray(Image);
angle=30;
%角度任意的一个数 表示30度
pai=3.14;
Angle=pai*angle/180;
%转换一下角度的表示方法。
[X,Y]=size(Image);

%原图显示
subplot(2,1,1);
imshow(Image);
title('原图像');

%计算四个角点的新坐标,确定旋转后的显示区域
LeftTop(1,1)=-(Y-1)*sin(Angle);
LeftTop(1,2)=(Y-1)*cos(Angle);

LeftBottom(1,1)=0;
LeftBottom(1,2)=0;

RightTop(1,1)=(X-1)*cos(Angle)-(Y-1)*sin(Angle);
RightTop(1,2)=(X-1)*sin(Angle)+(Y-1)*cos(Angle);

RightBottom(1,1)=(X-1)*cos(Angle);
RightBottom(1,2)=(X-1)*sin(Angle);

%计算显示区域的行列数
Xnew=max([LeftTop(1,1),LeftBottom(1,1),RightTop(1,1),RightBottom(1,1)])-min([LeftTop(1,1),LeftBottom(1,1),RightTop(1,1),RightBottom(1,1)]);
Ynew=max([LeftTop(1,2),LeftBottom(1,2),RightTop(1,2),RightBottom(1,2)])-min([LeftTop(1,2),LeftBottom(1,2),RightTop(1,2),RightBottom(1,2)]);

% 分配新显示区域矩阵
ImageNew=zeros(round(Xnew),round(Ynew))+255;

%计算原图像各像素的新坐标
for indexX=0:(X-1)
for indexY=0:(Y-1)
ImageNew(round(indexX*cos(Angle)-indexY*sin(Angle))+round(abs(min([LeftTop(1,1),LeftBottom(1,1),RightTop(1,1),RightBottom(1,1)])))+1,1+round(indexX*sin(Angle)+indexY*cos(Angle))+round(abs(min([LeftTop(1,2),LeftBottom(1,2),RightTop(1,2),RightBottom(1,2)]))))=Image(indexX+1,indexY+1);
end
end

%显示
subplot(2,1,2);
imshow((ImageNew)/255)
promp=['旋转角度为:' int2str(angle) '的图像']
title(promp);

%图像缩放
function y=resize(a,mul,type)
%****************************************************
%a:输入图像灰度值
%mul:缩放倍数
%type:1表示最邻近法,2表示双极性插值法
%画出缩放后图像并返回其灰度值
%****************************************************
[m,n]=size(a);
m1=m*mul;n1=n*mul;
%****************************************************
if type==1
for i=1:m1
for j=1:n1;
b(i,j)=a(round(i/mul),round(j/mul));
end
end
elseif type==2
for i=1:m1-1
for j=1:n1-1;
u0=i/mul;v0=j/mul;
u=round(u0);v=round(v0);
s=u0-u;t=v0-v;
b(i,j)=(a(u+1,v)-a(u,v))*s+(a(u,v+1)-a(u,v))*t+(a(u+1,v+1)+a(u,v)-a(u,v+1)-a(u+1,v))*s*t+a(u,v);
end
end
end
%*****************************************************
b=uint8(b);
imshow(b);
title('处理后图像');
y=b;

9. 图像处理要学什么

图像编码技术、图像分割等。

热点内容
python数据分析实战pdf 发布:2025-05-17 14:49:42 浏览:950
海澜之家广告脚本 发布:2025-05-17 13:56:06 浏览:30
手文件夹恢复 发布:2025-05-17 13:53:32 浏览:993
linux怎么看进程 发布:2025-05-17 13:53:30 浏览:303
thinkphp字段缓存 发布:2025-05-17 13:52:01 浏览:575
山灵app安卓版如何设置 发布:2025-05-17 13:51:49 浏览:388
帆布压缩袋 发布:2025-05-17 13:26:27 浏览:457
c语言16进制表示方法 发布:2025-05-17 13:11:25 浏览:480
ftp单位 发布:2025-05-17 13:10:03 浏览:142
c语言编写n的阶乘 发布:2025-05-17 13:10:02 浏览:685