窗口最小化后复原却无法响应是怎么回事?

六道佩恩 2019-08-26 06:14:37
这是一个文本阅读器程序,通过加参数运行,第一个参数是文本文件名,第二个参数是字体
最小化后,再复原时,就无法响应了
代码如下:

#include "stdio.h"
#include "dirent.h"
#include "string.h"
#include "windows.h"
char* TEXT=NULL; //存储文本文件的字符数组
int LEN=0; //文本的长度(TEXT数组的长度)
int* SITE=NULL; //记录每行输出点的数组
int LEN2=0; //SITE数组的长度
const char* DEFFONT = "楷体"; //默认字体
char* FONTNAME="楷体"; //字体名称的指针
//----------------------查看str后num个字符是不是完整的字符-----------------------------
int WholeWordAfter( char* str , int num )
{
int i=0;
for( i=0 ; i<num ; i++ )
if( str[i] < 0 ) //如果小于0,说明是一个中文符,+1跳过此中文符
i++;
return i==num? 1 : 0 ; //相等则说明完整,不等则说明包含了半个中文符
}
//----------------------------str字符串中,适应宽度wide应有多少个字符--------------------------------------
int GetTextNum( HDC hdc , int wide , char* str )
{
static int num=1; //输出的字节数,用static可使下次参考本次的数据,提高效率
if( str<TEXT || str >=TEXT+LEN ) //遇到不正确的地址应退出
return 0;

int len=LEN-(str-TEXT); //到文尾距离
char* str2 = strstr( str , "\n" ); //到换行的距离(输出长度不能超过这两个)
if( str2 != NULL ) //没有换行则考虑最远到文尾
len = str2+1-str; //+1是将\n考虑在内
if( num > len ) //输出最远不超过换行
num=len;
SIZE s;
GetTextExtentPoint32( hdc , str , num , &s ); //计算num个字节的字符的宽度
if( s.cx < wide ) //如果宽度比wide小
while( num<len && s.cx<wide )
GetTextExtentPoint32( hdc , str , ++num , &s ); //逐个字符累加试探到极限
else if( s.cx > wide ) //如果宽度本就比wide大
while( s.cx>wide )
GetTextExtentPoint32( hdc , str , --num , &s ); //逐个字符缩减至刚好的程度

if( s.cx > wide ) //如果超过wide,是第一个while试探超出,缩减1
num--;
if( WholeWordAfter( str , num ) == 0 ) //如果最后输出的是半个字符,缩减1,避免此情况发生
num--;
return num; //得出结果,对于宽度wide,应输出num个字节
}
//----------------------------计算在指定的宽度下,重新划分每一行文字--------------------------------------
void CalSite( HDC hdc , int wide )
{
int i=0;
SITE[0]=0;
for( i=0 ; i<LEN && SITE[i]<LEN ; i++ ) //SITE[i]记录的是第i行字符串第一个字符相对TEXT的位置
SITE[i+1]=SITE[i]+GetTextNum( hdc , wide , TEXT+SITE[i] );
LEN2 = i;
}
//--------------------------------------------------------------------------------------
LRESULT MyProc( HWND h , UINT msg , WPARAM wParam , LPARAM lParam )
{
static int WordHeight=0, LineSpace=0, LSpace=0, RSpace=0, USpace=0, DSpace=0;
static int ctrl=0, shift=0; //Ctrl键和Shift键按下的标志
static int LineMove=0,PageMove=0, lines=0; //移动一行、移动一页的标志,以及可显示的行数
static int ScrollMove=0, ScrollRange=0, ScrollPos=0 ; //滚动条滚动标志、滚动条范围、滑块位置
static HFONT font; //字体句柄
static int S=0,site=0, SiteFlag=0 ; //显示第一行字符串在SITE的位置、临时变量、SITE重新计算标志
switch( msg )
{
case WM_CREATE:
{
WordHeight = 30; //设置字体高度
LineSpace = 20; //设置行间距
LSpace =10; //设置到左边框的距离
RSpace =10; //设置到右边框的距离
USpace =20; //设置到上边框的距离
DSpace =20; //设置到下边框的距离
ScrollRange=1000; //设置滚动条范围(最大范围)
SetScrollRange( h , 1 , 0, ScrollRange, 1 ); //设置滚动条范围
font = CreateFont( WordHeight,0,0,0,0,0,0,0,0,0,0,0,0,FONTNAME ); //创建字体
if( font==NULL )
{
FONTNAME = (char*)DEFFONT; //创建失败则用默认字体
font = CreateFont( WordHeight,0,0,0,0,0,0,0,0,0,0,0,0,FONTNAME );//创建字体
}
}
return 0;

case WM_SIZE:
SiteFlag = 1; //尺寸变化,修改Site的标志置1
InvalidateRect( h , NULL , 1 ); //重绘
return 0;

case WM_PAINT:
{
RECT r;
GetClientRect( h , &r ); //计算客户区尺寸
int wide=r.right-r.left; //客户区宽
int height=r.bottom-r.top; //客户区高

HDC hdc = GetDC( h );
SelectObject( hdc , font );

if( SiteFlag == 1 ) //SITE数组需要重新计算(边框大小发生了变化)
{
lines = ( height-USpace-DSpace )/( WordHeight+LineSpace ); //计算文字显示行数
lines += ((height-USpace-DSpace)%(WordHeight+LineSpace))>WordHeight ? 1:0;
site = SITE[S]; //备份一下原本的输出位置SITE[S]
CalSite( hdc , wide-LSpace-RSpace ); //计算SITE数组
for( S=0 ; SITE[S]<=site && S<=LEN2 ; S++ ); //找出刚好比site大的SITE[S]
S--; //减1则是刚好比site小的SITE[S]
}

if( LineMove > 0 && S<LEN2 ) //往下翻动一行
S++;
else if( LineMove < 0 && S>0 ) //往上翻动一行
S--;

if( PageMove > 0 && S<LEN2 ) //往下翻一页
S = S+lines>LEN2 ? LEN2 : S+lines ;
else if( PageMove < 0 && S>0 ) //往上翻一页
S = S-lines<0 ? 0 : S-lines;

if( ScrollMove != 0 ) //如果拖动了滚动条滑块
{
if( (int)((double)ScrollPos/ScrollRange*LEN2 ) == S ) //如果S没变
return 0; //就没必要更新
S = (int)((double)ScrollPos/ScrollRange*LEN2 ); //S变化,更新S
}
SiteFlag=LineMove=PageMove=ScrollMove=0; //各个标志置0
SetScrollPos( h , 1 , (double)S/LEN2*ScrollRange , 1 ); //设置滑块位置

SendMessage( h , WM_ERASEBKGND , (WPARAM)hdc , 0 ); //重绘背景
for( int i=0 ; i<lines && S+i<LEN2 ; i++ ) //绘制
TextOut( hdc , LSpace , USpace+i*(WordHeight+LineSpace) ,
TEXT+SITE[S+i] , SITE[S+i+1]-SITE[S+i] );
ReleaseDC( h , hdc );
ValidateRect( h , NULL );
}
return 0;

case WM_MOUSEWHEEL: //滑动鼠标滚轮
if( ctrl == 1 ) //按住了Ctrl键时改变字体大小
{
WordHeight += (short)HIWORD(wParam)/120 ; //修改字体高度
if( WordHeight < 0 )
WordHeight = 0;
DeleteObject( font ); //删除以前的字体,避免程序冗余
font = CreateFont( WordHeight,0,0,0,0,0,0,0,0,0,0,0,0,FONTNAME );
SiteFlag=1; //SITE数组需要重新计算
}
else if( shift == 1 ) //按住了Shift键时
{
LineSpace += (short)HIWORD(wParam)/120; //修改行间距
if( LineSpace <= 0 )
LineSpace = 1;
SiteFlag=1; // SITE数组需要重新计算
}
else //没按住Ctrl键时滑动浏览
LineMove = (short)HIWORD(wParam)*-1; //仅滑动滚轮则是翻行
InvalidateRect( h , NULL, 1 );
return 0;

case WM_KEYDOWN: //按键按下事件
if( wParam == VK_CONTROL ) //Ctrl键按下
ctrl=1; //ctrl标志置1表示该键正按下
else if( wParam == VK_SHIFT ) //Shift键按下
shift=1; //shift标志置1表示该键正按下
else
{
switch( wParam ) //上下左右键翻行翻页
{
case VK_UP : LineMove = -1; break;
case VK_DOWN: LineMove = 1; break;
case VK_LEFT : PageMove = -1; break;
case VK_RIGHT : PageMove = 1; break;
}
InvalidateRect( h , NULL,0 ); //更新
}
return 0;

case WM_KEYUP: //按键弹起事件
if( wParam == VK_CONTROL ) //Ctrl键弹起
ctrl=0; //ctrl标志清0表示该键此时没有按下
else if( wParam == VK_SHIFT ) //Shift键弹起
shift=0; //shift标志清0表示该键此时没有按下
return 0;

case WM_VSCROLL: //滚动条事件
switch( LOWORD(wParam) )
{
case SB_LINEUP: LineMove=-1; break; //以下四条等同按键,翻行翻页
case SB_LINEDOWN: LineMove=1; break;
case SB_PAGEUP: PageMove=-1; break;
case SB_PAGEDOWN: PageMove=1; break;
case SB_THUMBPOSITION:
case SB_THUMBTRACK: ScrollMove=1; //拖动滑块则要修改相关标志
ScrollPos=HIWORD(wParam);break; //记录滑块位置
}
InvalidateRect( h , NULL, 0 );
return 0;

case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return DefWindowProc( h , msg , wParam , lParam );
}

void SetWNDCLASS( WNDCLASS* a, WNDPROC proc, LPCTSTR ClassName )
{
a->style =CS_HREDRAW | CS_VREDRAW;
a->lpfnWndProc =proc;
a->cbClsExtra =0;
a->cbWndExtra =0;
a->hInstance =GetModuleHandle(NULL);
a->hIcon =NULL;
a->hCursor =NULL;
a->hbrBackground =(HBRUSH)GetStockObject(WHITE_BRUSH);
a->lpszMenuName =NULL;
a->lpszClassName =ClassName;
}
ATOM RegMyClass( const char* name , WNDPROC proc)
{
WNDCLASS MyClass;
SetWNDCLASS ( &MyClass, proc, name ); //处理函数为MyProc,类名为"MyClass"
return RegisterClass( &MyClass );
}
int main( int argc , char* argv[] )
{
if( argc <=1 || argc >=4 )
return 1;
FILE *fp = fopen( argv[1] , "rb" );
if( fp == NULL )
return 2;
if( argc == 3 )
FONTNAME = argv[2]; //获取指定的字体名

LEN = filelength( fileno(fp) );
TEXT = malloc( LEN+1 );
fread( TEXT , 1 , LEN , fp );
TEXT[LEN]='\0';
fclose( fp );
SITE = malloc( LEN+1 );
memset( SITE , 0 , LEN+1 );

RegMyClass( "MyClass" , MyProc );
CreateWindow( "MyClass" , "文本阅读器" , WS_OVERLAPPEDWINDOW|WS_VISIBLE|WS_VSCROLL,
500, 400, 700, 500, NULL, NULL,NULL,NULL );
MSG msg;
while( GetMessage( &msg , NULL , 0 , 0 ) )
{
printf("-%d-", msg.message );
TranslateMessage(&msg);
DispatchMessage(&msg);
}
free( TEXT );
free( SITE );
return 0;
}

...全文
222 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2019-08-27
  • 打赏
  • 举报
回复
赵4老师 2019-08-27
  • 打赏
  • 举报
回复
赵4老师 2019-08-27
  • 打赏
  • 举报
回复
引用 3 楼 六道佩恩 的回复:
[quote=引用 1 楼 赵4老师 的回复:] https://bbs.csdn.net/topics/390374955
您这个帖子我以前看过,如果您知道原因的话,还请透露一点,这么大范围你只让我读官方例子,无异于大海捞针[/quote] 请使用 grep https://download.csdn.net/download/zhao4zhong1/4381913 或 findstr 命令大海捞针。
六道佩恩 2019-08-27
  • 打赏
  • 举报
回复
引用 1 楼 赵4老师 的回复:
https://bbs.csdn.net/topics/390374955
您这个帖子我以前看过,如果您知道原因的话,还请透露一点,这么大范围你只让我读官方例子,无异于大海捞针
注册表修改大全 作者:Sunny 编辑:Sunny 编辑日期:2002年12月17日 23:11分 :http://www.sunny.com/WinME : sunny@elong.com ★ 更改关闭应用程序时出现“等待”对话框的时间 有时应用程序因某种原因,会没有响应,当我们按下CTRL+ALT+DEL来结束应用程序时,系统要等一段时间才能结束任务,我们可以修改注册表来减少这段时间。 打开注册表,找到主键:“HKEY_CURRENT_USER\Control Panel\desktop”,在右侧窗口新建一“字符串值”,将其命名为“WaitToKillAppTimeOut”。双击“WaitToKillAppTimeOut,然后在“编辑字符串”对话框的“键值”框中输入5000(单位为ms,缺省值为20000ms,即20秒),为了缩短系统关闭应用的等待时间,您可以将此等待时间降低为20000ms以下,如10000ms、15000ms等。 ★ 启动时给自己个欢迎窗口 打开注册表,找到主键: “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Winlogon”,在右边窗口新建两个字符串,“LegalNoticeCaption”和“LegalNoticeText”。 “LegalNoticeCaption”是指弹出窗口的标题,修改它的值。在这里自己可以随便起个名字如“我的计算机”。 "LegalNoticeText",是指你想在登录对话框中显示的文字,如改为“祝你今天工作愉快!”这样,以后启动电脑时会自动弹出这个欢迎框。 ★ 设定口令的最小长度 通常登陆口令可以设置为空。为了安全起见,可以设定口令的最小长度,以防止口令被破解。 打开注册表编辑器,找到主键: “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Polices\ Network”键下。 在右侧窗口中新建二进制键值“MinPwdLen”,值为设定的口令的最小长度,默认值为0,表示口令可以为空。如设为“3”,则口令最小长度为3。 ★使Windows口令必须为数字和字母 设定口令为字母和数字,可以增加别人破你的口令的难度,如果口令长度足够长,则很难破解。打开注册表,找到: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\Network分支,在右窗格内新建一个DWORD值为“AlphanumPwds”,修改“AlphanumPwds”键值,在出现的对话框中的“键值”框内输入1。 ★ 防止匿名用户登录 WINDOWS的本身的登陆窗口安全性很差,在不知道口令的情况下可以轻易点“取消”或按“ESC”键轻松进入。修改注册表可以防止匿名用户登陆。 打开注册表,找到主键: “HKEY_LOCAL_MACHINE\Network\Logon”,新建DWORD值,名为“MustBeValidated”,键值为“1”;再重新启动机器后,你会发现通过点击Cancel按钮进Windows的办法已经不灵了。(如果自己都进不去了,可以以安全模式进入,然后将其值改为0。) ★禁用注册表编辑器Regedit 通过修改注册表,可以控制整个机器,可以禁止修改注册表,防止别人破坏HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System,如果你发现“Policies”下面没有“System”,则在它下面新建一个主键,名字就是“"System”,然后在右侧窗口中新建一个DWORD,名字取为“DisableRegistryTools”,修改它的值为“1”,以后,别人、甚至是你都无法再用regedit.exe 啦,如果要恢复的话,用记事本建立一个REG.REG文件,保存后双击即可导入注册表 REGEDIT 4 [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System] "DisableRegistryTools"=dword:00000000 。 ★禁用口令缓存 打开注册表,找到主键: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\Ne
第一章 MATLAB6.5 基础 1.1 MATLAB 语言介绍 1.1.1 MATLAB 产品系列与应用 1.1.2 MATLAB6.5 的新特点 1.2 MATLAB 语言基础 1.2.1 认识 MATLAB6.5 环境 1.2.2 MATLAB6.5 变量和表达式 1.2.3 数组的产生 1.2.4 数组的操作 1.2.5 常用的数学函数 1.2.6 数组的运算 1.2.7 数组的扩展 1.2.8 数组的转换 1.2.9 MATLAB 控制语句 1.2.10 其它控制语句 1.2.11 文件操作 1.2.12 M 文件 第二章 MATLAB 图形绘制基础 2.1 二维绘图 2.1.1 基本绘图函数 2.1.2 图形窗口的修饰 2.2 三维绘图 2.2.1 plot3 函数 2.2.2 三维网格图和曲面图 第三章 MATLAB 图形对象 3.1 图形对象 3.1.1 Root 对象 3.1.2 Figure 对象 3.1.3 Uicontrol 对象 3.1.4 Uimenu 对象 3.1.5 Axes 对象 3.1.6 Image 对象 3.1.7 Line 对象 3.1.8 Patch 对象 3.1.9 Rectangle 对象 3.1.10 Surface 对象 3.1.11 Light 对象 3.1.12 Text 对象 第四章 MATLAB 图形对象操作 4.1 图形对象的属性 4.2 图形对象句柄的获取 4.2.1 对象创建时获取 4.2.2 层次关系来获取 4.2.3 当前对象的获取 4.2.4 根据对象属性值的获取 4.3 图形对象句柄的删除与判断 4.3.1 句柄的删除 4.3.2 句柄的判断 4.4 图形对象属性值的获取与设置 4.4.1 图形对象属性值的设置 4.4.2 图形对象属性值的获取 4.4.3 用户缺省值的操作 4.5 图形对象的其它操作 4.5.1 figflag 函数 4.5.2 findfigs 函数 4.5.3 copyobj 函数 4.5.4 capture 函数 4.5.5 refresh 函数 4.5.6 saveas 函数 4.5.7 hgload 函数和 hgsave 函数 4.5.8 newplot 函数 第五章 GUI 设计 5.1 认识 GUI 环境 5.1.1 版面设计工具 5.1.2 属性编辑器 5.1.3 菜单编辑器 5.1.4 调整工具 5.1.5 对象浏览器 5.1.6 TAB 次序编辑器 5.1.7 GUIDE 环境设置 5.2 GUI 设计 5.2.1 GUI 设计原则 5.2.2 GUI 设计步骤 5.3 GUI 实现 5.3.1 组件的布局 5.3.2 属性编辑 5.3.3 回调函数 5.4 GUI 实例 5.4.1 组件布局 5.4.2 属性值的修改 5.4.3 回调函数 5.4.4 调试程序 5.4.5 执行的效果 5.4.6 结束语 第六章 MATLAB 特殊图形的绘制 6.1 区域图 6.2 填充图 6.2.1 二维填充图 6.2.2 三维填充图 6.3 条形图 6.3.1 二维条形图 6.3.1 三维条形图 6.4 直方图 6.4.1 笛卡儿坐标系下的直方图 6.4.2 极坐标系下的直方图 6.5 圆体图 6.5.1 圆柱体的绘制 6.5.2 球体的绘制 6.5.3 椭圆体的绘制 6.6 饼图 6.6.1 二维饼图 6.6.2 三维饼图 6.7 排列图 6.8 离散图形的绘制 6.8.1 二维柄状图 6.8.2 三维柄状图 6.8.3 阶梯图 6.9 散点图 6.9.1 二维散点图 6.9.2 三维散点图 6.9.3 散点图矩阵 6.10 轮廓图 6.10.1 二维轮廓图 6.10.2 三维轮廓图 6.11 向量图 6.11.1 罗盘图 6.11.2 羽状图 6.11.3 箭头图 6.11.4 法线图 第七章 MATLAB 高级绘图功能 7.1 彗星图 7.1.1 二维彗星轨迹图 7.1.2 三维彗星轨迹图 7.2 帧动画 7.3 程序动画 7.4 色图变幻 7.5 Voronoi 图和三角剖分 7.6 四面体 7.7 彩带图 7.7.1 彩带图 7.7.2 三维流彩带图 7.8 伪彩图 7.9 切片图 7.9.1 切片图 7.9.2 切片轮廓线图 7.10 网格图和曲面图特效 7.10.1 显示轮廓线 7.10.2 显示围裙 7.10.3 瀑布效果 7.10.4 带光
第一章 MATLAB6.5 基础 1.1 MATLAB 语言介绍 1.1.1 MATLAB 产品系列与应用 1.1.2 MATLAB6.5 的新特点 1.2 MATLAB 语言基础 1.2.1 认识 MATLAB6.5 环境 1.2.2 MATLAB6.5 变量和表达式 1.2.3 数组的产生 1.2.4 数组的操作 1.2.5 常用的数学函数 1.2.6 数组的运算 1.2.7 数组的扩展 1.2.8 数组的转换 1.2.9 MATLAB 控制语句 1.2.10 其它控制语句 1.2.11 文件操作 1.2.12 M 文件 第二章 MATLAB 图形绘制基础 2.1 二维绘图 2.1.1 基本绘图函数 2.1.2 图形窗口的修饰 2.2 三维绘图 2.2.1 plot3 函数 2.2.2 三维网格图和曲面图 第三章 MATLAB 图形对象 3.1 图形对象 3.1.1 Root 对象 3.1.2 Figure 对象 3.1.3 Uicontrol 对象 3.1.4 Uimenu 对象 3.1.5 Axes 对象 3.1.6 Image 对象 3.1.7 Line 对象 3.1.8 Patch 对象 3.1.9 Rectangle 对象 3.1.10 Surface 对象 3.1.11 Light 对象 3.1.12 Text 对象 第四章 MATLAB 图形对象操作 4.1 图形对象的属性 4.2 图形对象句柄的获取 4.2.1 对象创建时获取 4.2.2 层次关系来获取 4.2.3 当前对象的获取 4.2.4 根据对象属性值的获取 4.3 图形对象句柄的删除与判断 4.3.1 句柄的删除 4.3.2 句柄的判断 4.4 图形对象属性值的获取与设置 4.4.1 图形对象属性值的设置 4.4.2 图形对象属性值的获取 4.4.3 用户缺省值的操作 4.5 图形对象的其它操作 4.5.1 figflag 函数 4.5.2 findfigs 函数 4.5.3 copyobj 函数 4.5.4 capture 函数 4.5.5 refresh 函数 4.5.6 saveas 函数 4.5.7 hgload 函数和 hgsave 函数 4.5.8 newplot 函数 第五章 GUI 设计 5.1 认识 GUI 环境 5.1.1 版面设计工具 5.1.2 属性编辑器 5.1.3 菜单编辑器 5.1.4 调整工具 5.1.5 对象浏览器 5.1.6 TAB 次序编辑器 5.1.7 GUIDE 环境设置 5.2 GUI 设计 5.2.1 GUI 设计原则 5.2.2 GUI 设计步骤 5.3 GUI 实现 5.3.1 组件的布局 5.3.2 属性编辑 5.3.3 回调函数 5.4 GUI 实例 5.4.1 组件布局 5.4.2 属性值的修改 5.4.3 回调函数 5.4.4 调试程序 5.4.5 执行的效果 5.4.6 结束语 第六章 MATLAB 特殊图形的绘制 6.1 区域图 6.2 填充图 6.2.1 二维填充图 6.2.2 三维填充图 6.3 条形图 6.3.1 二维条形图 6.3.1 三维条形图 6.4 直方图 6.4.1 笛卡儿坐标系下的直方图 6.4.2 极坐标系下的直方图 6.5 圆体图 6.5.1 圆柱体的绘制 6.5.2 球体的绘制 6.5.3 椭圆体的绘制 6.6 饼图 6.6.1 二维饼图 6.6.2 三维饼图 6.7 排列图 6.8 离散图形的绘制 6.8.1 二维柄状图 6.8.2 三维柄状图 6.8.3 阶梯图 6.9 散点图 6.9.1 二维散点图 6.9.2 三维散点图 6.9.3 散点图矩阵 6.10 轮廓图 6.10.1 二维轮廓图 6.10.2 三维轮廓图 6.11 向量图 6.11.1 罗盘图 6.11.2 羽状图 6.11.3 箭头图 6.11.4 法线图 第七章 MATLAB 高级绘图功能 7.1 彗星图 7.1.1 二维彗星轨迹图 7.1.2 三维彗星轨迹图 7.2 帧动画 7.3 程序动画 7.4 色图变幻 7.5 Voronoi 图和三角剖分 7.6 四面体 7.7 彩带图 7.7.1 彩带图 7.7.2 三维流彩带图 7.8 伪彩图 7.9 切片图 7.9.1 切片图 7.9.2 切片轮廓线图 7.10 网格图和曲面图特效 7.10.1 显示轮廓线 7.10.2 显示围裙 7.10.3 瀑布效果 7.10.4 带光照模式的阴影图 7.11 函数绘图 7.12 三维图形控制 7.12.1 视点 7.12.2 图形旋转 7.12.3 灯光效果 7.12.4 色彩控制 第八章 数字图像原理 8.1 图像 8.2 数字图像处理学 8.2.1 数字图像处理方法 8.2.2 数字图像处理的主要内容 8.3 图像文件格式 8.4 图像类型 8.4.1 索引图像 8.4.2 灰度图像 8.4.3 RGB 图像 8.4.4 二值图像 8.4.5 图像序列 8.4.6 图形类型判断 8.5 图像类型转换 8.5.1 dither 函数 8.5.2 gray2ind 函数 8.5.3 grayslice 函数 8.5.4 im2bw 函数 8.5.5 ind2gray 函数 8.5.6 ind2rgb 函数 8.5.7 mat2gray 函数 8.5.8 rgb2gray 函数 8.5.9 rgb2ind 函数 8.6 MATLAB 中的 8 位和 16 位图像 8.6.1 8 位和 16 位索引图像 8.6.2 8 位和 16 位灰度图像 8.6.3 8 位和 16 位 RGB 图像 8.7 图像文件的操作 8.7.1 查询图像文件的信息 8.7.2 图像文件的读取 8.7.3 图像文件的存储 8.7.4 图像数据类型的转换 8.7.5 图像文件格式的转换 第九章 MATLAB 图像显示与色彩 9.1 图像显示 9.1.1 imshow 函数 9.1.2 显示索引图像 9.1.3 显示灰度图像 9.1.4 显示二值图像 9.1.5 显示真彩图像 9.1.6 直接从磁盘文件中显示图像 9.2 特殊图像显示技术 9.2.1 显示颜色条 9.2.2 显示多帧图像序列 9.2.3 显示多幅图像序列 9.3 纹理映射 9.4 图像颜色 9.4.1 图像的退色处理 9.4.2 MATLAB 的颜色模型 9.4.3 MATLAB 颜色模型的转换 9.4.4 色彩处理 第十章 MATLAB 图像正交变换 10.1 正交变换通用算子 10.2 傅立叶变换 10.2.1 傅立叶变换的原理 10.2.2 傅立叶性质 10.2.3 二维离散傅立叶变换( 2DDFT ) 10.2.4 快速傅立叶变换( FFT ) 10.2.5 傅立叶变换的研究与应用 10.3 离散余弦变换 10.3.1 DCT 变换矩阵 10.3.2 dct2 函数和 dctmtx 函数 10.4 Walsh- Hadamard 变换 10.5 Radon 变换 10.6 小波变换 10.6.1 小波的定义 10.6.2 小波变换函数 10.6.3 小波变换实例 10.6.4 小波除噪与压缩函数 第十一章 滤波器的设计 11.1 线性滤波 11.1.1 卷积与相关 11.1.2 imfilter 滤波函数 11.1.3 预定义滤波 11.2 FIR 滤波器的设计 11.2.1 FIR 滤波器基础 11.2.2 计算二维频率响应 11.2.3 计算期望频率响应矩阵 11.2.4 频率变换法 11.2.5 频率采样法 11.2.6 窗函数法 第十二章 MATLAB 图像运算 12.1 图像点的运算 12.1.1 线性点运算 12.1.2 非线性点运算 12.2 图像的算术运算 12.2.1 加法运算 12.2.2 减 法运算 12.2.3 乘法 运算 12.2.4 除法 运算 12.2.5 其它运算 12.3 图像的位逻辑运算 12.4 图像的几何运算 12.4.1 图像插值 12.4.2 图像缩放 12.4.3 图像旋转 12.4.4 图像剪切 12.5 空间变换 12.5.1 仿射变换( affine transformation ) 12.5.2 透视变换 (Perspective Transformation) 12.5.3 空间变换的 MATLAB 函数 12.5.4 空间变换实例 12.6 图像融合 12.7 邻域与块操作 12.7.1 邻域操作 12.7.2 图像块操作 12.8 区域处理 12.8.1 区域选择 12.8.2 区域滤波 12.8.3 区域填充 第十三章 MATLAB 图像增强 13.1 灰度变换增强 13.1.1 像素值及其统计特性 13.1.2 直方图灰度变换 13.1.3 直方图均衡化 13.1.4 直方图规定化 13.2 空域滤波增强 13.2.1 平滑滤波器 13.2.2 锐化滤波器 13.3 频域增强 13.3.1 低通滤波器 13.3.2 高通滤波器 13.3.3 同态滤波器 13.3.4 频域增强 MATLAB 实例 13.4 色彩增强 13.4.1 真彩色增强 13.4.2 伪彩色增强 13.5 小波增强 第十四章 图像复原 14.1 退化模型 14.1.1 连续退化模型 14.1.2 离散退化模型 14.2 复原的代数方法 14.2.1 代数复原原理 14.2.2 逆滤波复原 14.2.3 最小二乘方滤波 14.3 MATLAB 实现图像复原 14.3.1 维纳滤波复原 14.3.2 规则化滤波复原 14.3.3 Lucy-Richardson 复原 14.3.4 盲去卷积复原 14.3.5 图像复原的其它 MATLAB 函数 第十五章 图像分析 15.1 边缘检测 15.1.1 微分算子 15.1.2 Log算子 15.1.3 Canny 算子 15.2 四叉树分解 15.2.1 四叉树分解 15.2.2 四叉树 MATLAB 函数 第十六章 数学形态学操作 16.1 数学形态学的基本运算 16.1.1 结构元素矩阵 16.1.2 膨胀运算 16.1.3 腐蚀运算 16.1.4 膨胀与腐蚀的对偶关系 16.1.5 开运算和闭运算 16.1.6 击中与击不中 16.1.7 二值图像形态学处理函数 16.1.8 其它膨胀和腐蚀的基本函数 16.2 形态学的基本应用 16.2.1 边缘提取 16.2.2 连通对象标注 16.2.3 对象选择 16.2.4 二值图像面积提取 16.2.5 二值图像的欧拉数 16.2.6 移除对象 16.2.7 区域填充 16.3 查找表操作 16.4 灰度形态学 16.4.1 灰度形态学基本运算实例 16.4.2 其它函数 第十七 章 图像编码与压缩 17.1 图像编码基础 17.1.1 图像编码压缩的必要性 17.1.2 图像编码压缩的可能性 17.1.3 图像编码压缩的分类 17.1.4 图像编码压缩的评价 17.2 无损压缩编码 17.2.1 行程编码 17.2.2 哈夫曼( Huffman )编码 17.2.3 算术编码 17.2.4 词典编码 17.3 有损压缩编码 17.3.1 预测编码 17.3.2 正交变换编码 17.3.3 MATLAB 实现余弦变换压缩 17.3.4 MATLAB 实现小波变换压缩 附录 A 对象属性 附录 B 图像工具箱函数
图形图像处理源程序-matlab6.5图形图像处理源程序.rar 这是一些图形图像处理源程序,需要的话可以参考一下 第一章 MATLAB6.5 基础 1.1 MATLAB 语言介绍 1.1.1 MATLAB 产品系列与应用 1.1.2 MATLAB6.5 的新特点 1.2 MATLAB 语言基础 1.2.1 认识 MATLAB6.5 环境 1.2.2 MATLAB6.5 变量和表达式 1.2.3 数组的产生 1.2.4 数组的操作 1.2.5 常用的数学函数 1.2.6 数组的运算 1.2.7 数组的扩展 1.2.8 数组的转换 1.2.9 MATLAB 控制语句 1.2.10 其它控制语句 1.2.11 文件操作 1.2.12 M 文件 第二章 MATLAB 图形绘制基础 2.1 二维绘图 2.1.1 基本绘图函数 2.1.2 图形窗口的修饰 2.2 三维绘图 2.2.1 plot3 函数 2.2.2 三维网格图和曲面图 第三章 MATLAB 图形对象 3.1 图形对象 3.1.1 Root 对象 3.1.2 Figure 对象 3.1.3 Uicontrol 对象 3.1.4 Uimenu 对象 3.1.5 Axes 对象 3.1.6 Image 对象 3.1.7 Line 对象 3.1.8 Patch 对象 3.1.9 Rectangle 对象 3.1.10 Surface 对象 3.1.11 Light 对象 3.1.12 Text 对象 第四章 MATLAB 图形对象操作 4.1 图形对象的属性 4.2 图形对象句柄的获取 4.2.1 对象创建时获取 4.2.2 层次关系来获取 4.2.3 当前对象的获取 4.2.4 根据对象属性值的获取 4.3 图形对象句柄的删除与判断 4.3.1 句柄的删除 4.3.2 句柄的判断 4.4 图形对象属性值的获取与设置 4.4.1 图形对象属性值的设置 4.4.2 图形对象属性值的获取 4.4.3 用户缺省值的操作 4.5 图形对象的其它操作 4.5.1 figflag 函数 4.5.2 findfigs 函数 4.5.3 copyobj 函数 4.5.4 capture 函数 4.5.5 refresh 函数 4.5.6 saveas 函数 4.5.7 hgload 函数和 hgsave 函数 4.5.8 newplot 函数 第五章 GUI 设计 5.1 认识 GUI 环境 5.1.1 版面设计工具 5.1.2 属性编辑器 5.1.3 菜单编辑器 5.1.4 调整工具 5.1.5 对象浏览器 5.1.6 TAB 次序编辑器 5.1.7 GUIDE 环境设置 5.2 GUI 设计 5.2.1 GUI 设计原则 5.2.2 GUI 设计步骤 5.3 GUI 实现 5.3.1 组件的布局 5.3.2 属性编辑 5.3.3 回调函数 5.4 GUI 实例 5.4.1 组件布局 5.4.2 属性值的修改 5.4.3 回调函数 5.4.4 调试程序 5.4.5 执行的效果 5.4.6 结束语 第六章 MATLAB 特殊图形的绘制 6.1 区域图 6.2 填充图 6.2.1 二维填充图 6.2.2 三维填充图 6.3 条形图 6.3.1 二维条形图 6.3.1 三维条形图 6.4 直方图 6.4.1 笛卡儿坐标系下的直方图 6.4.2 极坐标系下的直方图 6.5 圆体图 6.5.1 圆柱体的绘制 6.5.2 球体的绘制 6.5.3 椭圆体的绘制 6.6 饼图 6.6.1 二维饼图 6.6.2 三维饼图 6.7 排列图 6.8 离散图形的绘制 6.8.1 二维柄状图 6.8.2 三维柄状图 6.8.3 阶梯图 6.9 散点图 6.9.1 二维散点图 6.9.2 三维散点图 6.9.3 散点图矩阵 6.10 轮廓图 6.10.1 二维轮廓图 6.10.2 三维轮廓图 6.11 向量图 6.11.1 罗盘图 6.11.2 羽状图 6.11.3 箭头图 6.11.4 法线图 第七章 MATLAB 高级绘图功能 7.1 彗星图 7.1.1 二维彗星轨迹图 7.1.2 三维彗星轨迹图 7.2 帧动画 7.3 程序动画 7.4 色图变幻 7.5 Voronoi 图和三角剖分 7.6 四面体 7.7 彩带图 7.7.1 彩带图 7.7.2 三维流彩带图 7.8 伪彩图 7.9 切片图 7.9.1 切片图 7.9.2 切片轮廓线图 7.10 网格图和曲面图特效 7.10.1 显示轮廓线 7.10.2 显示围裙 7.10.3 瀑布效果 7.10.4 带光照模式的阴影图 7.11 函数绘图 7.12 三维图形控制 7.12.1 视点 7.12.2 图形旋转 7.12.3 灯光效果 7.12.4 色彩控制 第八章 数字图像原理 8.1 图像 8.2 数字图像处理学 8.2.1 数字图像处理方法 8.2.2 数字图像处理的主要内容 8.3 图像文件格式 8.4 图像类型 8.4.1 索引图像 8.4.2 灰度图像 8.4.3 RGB 图像 8.4.4 二值图像 8.4.5 图像序列 8.4.6 图形类型判断 8.5 图像类型转换 8.5.1 dither 函数 8.5.2 gray2ind 函数 8.5.3 grayslice 函数 8.5.4 im2bw 函数 8.5.5 ind2gray 函数 8.5.6 ind2rgb 函数 8.5.7 mat2gray 函数 8.5.8 rgb2gray 函数 8.5.9 rgb2ind 函数 8.6 MATLAB 中的 8 位和 16 位图像 8.6.1 8 位和 16 位索引图像 8.6.2 8 位和 16 位灰度图像 8.6.3 8 位和 16 位 RGB 图像 8.7 图像文件的操作 8.7.1 查询图像文件的信息 8.7.2 图像文件的读取 8.7.3 图像文件的存储 8.7.4 图像数据类型的转换 8.7.5 图像文件格式的转换 第九章 MATLAB 图像显示与色彩 9.1 图像显示 9.1.1 imshow 函数 9.1.2 显示索引图像 9.1.3 显示灰度图像 9.1.4 显示二值图像 9.1.5 显示真彩图像 9.1.6 直接从磁盘文件中显示图像 9.2 特殊图像显示技术 9.2.1 显示颜色条 9.2.2 显示多帧图像序列 9.2.3 显示多幅图像序列 9.3 纹理映射 9.4 图像颜色 9.4.1 图像的退色处理 9.4.2 MATLAB 的颜色模型 9.4.3 MATLAB 颜色模型的转换 9.4.4 色彩处理 第十章 MATLAB 图像正交变换 10.1 正交变换通用算子 10.2 傅立叶变换 10.2.1 傅立叶变换的原理 10.2.2 傅立叶性质 10.2.3 二维离散傅立叶变换( 2DDFT ) 10.2.4 快速傅立叶变换( FFT ) 10.2.5 傅立叶变换的研究与应用 10.3 离散余弦变换 10.3.1 DCT 变换矩阵 10.3.2 dct2 函数和 dctmtx 函数 10.4 Walsh- Hadamard 变换 10.5 Radon 变换 10.6 小波变换 10.6.1 小波的定义 10.6.2 小波变换函数 10.6.3 小波变换实例 10.6.4 小波除噪与压缩函数 第十一章 滤波器的设计 11.1 线性滤波 11.1.1 卷积与相关 11.1.2 imfilter 滤波函数 11.1.3 预定义滤波 11.2 FIR 滤波器的设计 11.2.1 FIR 滤波器基础 11.2.2 计算二维频率响应 11.2.3 计算期望频率响应矩阵 11.2.4 频率变换法 11.2.5 频率采样法 11.2.6 窗函数法 第十二章 MATLAB 图像运算 12.1 图像点的运算 12.1.1 线性点运算 12.1.2 非线性点运算 12.2 图像的算术运算 12.2.1 加法运算 12.2.2 减 法运算 12.2.3 乘法 运算 12.2.4 除法 运算 12.2.5 其它运算 12.3 图像的位逻辑运算 12.4 图像的几何运算 12.4.1 图像插值 12.4.2 图像缩放 12.4.3 图像旋转 12.4.4 图像剪切 12.5 空间变换 12.5.1 仿射变换( affine transformation ) 12.5.2 透视变换 12.5.3 空间变换的 MATLAB 函数 12.5.4 空间变换实例 12.6 图像融合 12.7 邻域与块操作 12.7.1 邻域操作 12.7.2 图像块操作 12.8 区域处理 12.8.1 区域选择 12.8.2 区域滤波 12.8.3 区域填充 第十三章 MATLAB 图像增强 13.1 灰度变换增强 13.1.1 像素值及其统计特性 13.1.2 直方图灰度变换 13.1.3 直方图均衡化 13.1.4 直方图规定化 13.2 空域滤波增强 13.2.1 平滑滤波器 13.2.2 锐化滤波器 13.3 频域增强 13.3.1 低通滤波器 13.3.2 高通滤波器 13.3.3 同态滤波器 13.3.4 频域增强 MATLAB 实例 13.4 色彩增强 13.4.1 真彩色增强 13.4.2 伪彩色增强 13.5 小波增强 第十四章 图像复原 14.1 退化模型 14.1.1 连续退化模型 14.1.2 离散退化模型 14.2 复原的代数方法 14.2.1 代数复原原理 14.2.2 逆滤波复原 14.2.3 最小二乘方滤波 14.3 MATLAB 实现图像复原 14.3.1 维纳滤波复原 14.3.2 规则化滤波复原 14.3.3 Lucy-Richardson 复原 14.3.4 盲去卷积复原 14.3.5 图像复原的其它 MATLAB 函数 第十五章 图像分析 15.1 边缘检测 15.1.1 微分算子 15.1.2 Log算子 15.1.3 Canny 算子 15.2 四叉树分解 15.2.1 四叉树分解 15.2.2 四叉树 MATLAB 函数 第十六章 数学形态学操作 16.1 数学形态学的基本运算 16.1.1 结构元素矩阵 16.1.2 膨胀运算 16.1.3 腐蚀运算 16.1.4 膨胀与腐蚀的对偶关系 16.1.5 开运算和闭运算 16.1.6 击中与击不中 16.1.7 二值图像形态学处理函数 16.1.8 其它膨胀和腐蚀的基本函数 16.2 形态学的基本应用 16.2.1 边缘提取 16.2.2 连通对象标注 16.2.3 对象选择 16.2.4 二值图像面积提取 16.2.5 二值图像的欧拉数 16.2.6 移除对象 16.2.7 区域填充 16.3 查找表操作 16.4 灰度形态学 16.4.1 灰度形态学基本运算实例 16.4.2 其它函数 第十七 章 图像编码与压缩 17.1 图像编码基础 17.1.1 图像编码压缩的必要性 17.1.2 图像编码压缩的可能性 17.1.3 图像编码压缩的分类 17.1.4 图像编码压缩的评价 17.2 无损压缩编码 17.2.1 行程编码 17.2.2 哈夫曼( Huffman )编码 17.2.3 算术编码 17.2.4 词典编码 17.3 有损压缩编码 17.3.1 预测编码 17.3.2 正交变换编码 17.3.3 MATLAB 实现余弦变换压缩 17.3.4 MATLAB 实现小波变换压缩 附录 A 对象属性 附录 B 图像工具箱函数
matlab6.5图形图像处理源程序 第一章 MATLAB6.5 基础 1.1 MATLAB 语言介绍 1.1.1 MATLAB 产品系列与应用 1.1.2 MATLAB6.5 的新特点 1.2 MATLAB 语言基础 1.2.1 认识 MATLAB6.5 环境 1.2.2 MATLAB6.5 变量和表达式 1.2.3 数组的产生 1.2.4 数组的操作 1.2.5 常用的数学函数 1.2.6 数组的运算 1.2.7 数组的扩展 1.2.8 数组的转换 1.2.9 MATLAB 控制语句 1.2.10 其它控制语句 1.2.11 文件操作 1.2.12 M 文件 第二章 MATLAB 图形绘制基础 2.1 二维绘图 2.1.1 基本绘图函数 2.1.2 图形窗口的修饰 2.2 三维绘图 2.2.1 plot3 函数 2.2.2 三维网格图和曲面图 第三章 MATLAB 图形对象 3.1 图形对象 3.1.1 Root 对象 3.1.2 Figure 对象 3.1.3 Uicontrol 对象 3.1.4 Uimenu 对象 3.1.5 Axes 对象 3.1.6 Image 对象 3.1.7 Line 对象 3.1.8 Patch 对象 3.1.9 Rectangle 对象 3.1.10 Surface 对象 3.1.11 Light 对象 3.1.12 Text 对象 第四章 MATLAB 图形对象操作 4.1 图形对象的属性 4.2 图形对象句柄的获取 4.2.1 对象创建时获取 4.2.2 层次关系来获取 4.2.3 当前对象的获取 4.2.4 根据对象属性值的获取 4.3 图形对象句柄的删除与判断 4.3.1 句柄的删除 4.3.2 句柄的判断 4.4 图形对象属性值的获取与设置 4.4.1 图形对象属性值的设置 4.4.2 图形对象属性值的获取 4.4.3 用户缺省值的操作 4.5 图形对象的其它操作 4.5.1 figflag 函数 4.5.2 findfigs 函数 4.5.3 copyobj 函数 4.5.4 capture 函数 4.5.5 refresh 函数 4.5.6 saveas 函数 4.5.7 hgload 函数和 hgsave 函数 4.5.8 newplot 函数 第五章 GUI 设计 5.1 认识 GUI 环境 5.1.1 版面设计工具 5.1.2 属性编辑器 5.1.3 菜单编辑器 5.1.4 调整工具 5.1.5 对象浏览器 5.1.6 TAB 次序编辑器 5.1.7 GUIDE 环境设置 5.2 GUI 设计 5.2.1 GUI 设计原则 5.2.2 GUI 设计步骤 5.3 GUI 实现 5.3.1 组件的布局 5.3.2 属性编辑 5.3.3 回调函数 5.4 GUI 实例 5.4.1 组件布局 5.4.2 属性值的修改 5.4.3 回调函数 5.4.4 调试程序 5.4.5 执行的效果 5.4.6 结束语 第六章 MATLAB 特殊图形的绘制 6.1 区域图 6.2 填充图 6.2.1 二维填充图 6.2.2 三维填充图 6.3 条形图 6.3.1 二维条形图 6.3.1 三维条形图 6.4 直方图 6.4.1 笛卡儿坐标系下的直方图 6.4.2 极坐标系下的直方图 6.5 圆体图 6.5.1 圆柱体的绘制 6.5.2 球体的绘制 6.5.3 椭圆体的绘制 6.6 饼图 6.6.1 二维饼图 6.6.2 三维饼图 6.7 排列图 6.8 离散图形的绘制 6.8.1 二维柄状图 6.8.2 三维柄状图 6.8.3 阶梯图 6.9 散点图 6.9.1 二维散点图 6.9.2 三维散点图 6.9.3 散点图矩阵 6.10 轮廓图 6.10.1 二维轮廓图 6.10.2 三维轮廓图 6.11 向量图 6.11.1 罗盘图 6.11.2 羽状图 6.11.3 箭头图 6.11.4 法线图 第七章 MATLAB 高级绘图功能 7.1 彗星图 7.1.1 二维彗星轨迹图 7.1.2 三维彗星轨迹图 7.2 帧动画 7.3 程序动画 7.4 色图变幻 7.5 Voronoi 图和三角剖分 7.6 四面体 7.7 彩带图 7.7.1 彩带图 7.7.2 三维流彩带图 7.8 伪彩图 7.9 切片图 7.9.1 切片图 7.9.2 切片轮廓线图 7.10 网格图和曲面图特效 7.10.1 显示轮廓线 7.10.2 显示围裙 7.10.3 瀑布效果 7.10.4 带光照模式的阴影图 7.11 函数绘图 7.12 三维图形控制 7.12.1 视点 7.12.2 图形旋转 7.12.3 灯光效果 7.12.4 色彩控制 第八章 数字图像原理 8.1 图像 8.2 数字图像处理学 8.2.1 数字图像处理方法 8.2.2 数字图像处理的主要内容 8.3 图像文件格式 8.4 图像类型 8.4.1 索引图像 8.4.2 灰度图像 8.4.3 RGB 图像 8.4.4 二值图像 8.4.5 图像序列 8.4.6 图形类型判断 8.5 图像类型转换 8.5.1 dither 函数 8.5.2 gray2ind 函数 8.5.3 grayslice 函数 8.5.4 im2bw 函数 8.5.5 ind2gray 函数 8.5.6 ind2rgb 函数 8.5.7 mat2gray 函数 8.5.8 rgb2gray 函数 8.5.9 rgb2ind 函数 8.6 MATLAB 中的 8 位和 16 位图像 8.6.1 8 位和 16 位索引图像 8.6.2 8 位和 16 位灰度图像 8.6.3 8 位和 16 位 RGB 图像 8.7 图像文件的操作 8.7.1 查询图像文件的信息 8.7.2 图像文件的读取 8.7.3 图像文件的存储 8.7.4 图像数据类型的转换 8.7.5 图像文件格式的转换 第九章 MATLAB 图像显示与色彩 9.1 图像显示 9.1.1 imshow 函数 9.1.2 显示索引图像 9.1.3 显示灰度图像 9.1.4 显示二值图像 9.1.5 显示真彩图像 9.1.6 直接从磁盘文件中显示图像 9.2 特殊图像显示技术 9.2.1 显示颜色条 9.2.2 显示多帧图像序列 9.2.3 显示多幅图像序列 9.3 纹理映射 9.4 图像颜色 9.4.1 图像的退色处理 9.4.2 MATLAB 的颜色模型 9.4.3 MATLAB 颜色模型的转换 9.4.4 色彩处理 第十章 MATLAB 图像正交变换 10.1 正交变换通用算子 10.2 傅立叶变换 10.2.1 傅立叶变换的原理 10.2.2 傅立叶性质 10.2.3 二维离散傅立叶变换( 2DDFT ) 10.2.4 快速傅立叶变换( FFT ) 10.2.5 傅立叶变换的研究与应用 10.3 离散余弦变换 10.3.1 DCT 变换矩阵 10.3.2 dct2 函数和 dctmtx 函数 10.4 Walsh- Hadamard 变换 10.5 Radon 变换 10.6 小波变换 10.6.1 小波的定义 10.6.2 小波变换函数 10.6.3 小波变换实例 10.6.4 小波除噪与压缩函数 第十一章 滤波器的设计 11.1 线性滤波 11.1.1 卷积与相关 11.1.2 imfilter 滤波函数 11.1.3 预定义滤波 11.2 FIR 滤波器的设计 11.2.1 FIR 滤波器基础 11.2.2 计算二维频率响应 11.2.3 计算期望频率响应矩阵 11.2.4 频率变换法 11.2.5 频率采样法 11.2.6 窗函数法 第十二章 MATLAB 图像运算 12.1 图像点的运算 12.1.1 线性点运算 12.1.2 非线性点运算 12.2 图像的算术运算 12.2.1 加法运算 12.2.2 减 法运算 12.2.3 乘法 运算 12.2.4 除法 运算 12.2.5 其它运算 12.3 图像的位逻辑运算 12.4 图像的几何运算 12.4.1 图像插值 12.4.2 图像缩放 12.4.3 图像旋转 12.4.4 图像剪切 12.5 空间变换 12.5.1 仿射变换( affine transformation ) 12.5.2 透视变换 (Perspective Transformation) 12.5.3 空间变换的 MATLAB 函数 12.5.4 空间变换实例 12.6 图像融合 12.7 邻域与块操作 12.7.1 邻域操作 12.7.2 图像块操作 12.8 区域处理 12.8.1 区域选择 12.8.2 区域滤波 12.8.3 区域填充 第十三章 MATLAB 图像增强 13.1 灰度变换增强 13.1.1 像素值及其统计特性 13.1.2 直方图灰度变换 13.1.3 直方图均衡化 13.1.4 直方图规定化 13.2 空域滤波增强 13.2.1 平滑滤波器 13.2.2 锐化滤波器 13.3 频域增强 13.3.1 低通滤波器 13.3.2 高通滤波器 13.3.3 同态滤波器 13.3.4 频域增强 MATLAB 实例 13.4 色彩增强 13.4.1 真彩色增强 13.4.2 伪彩色增强 13.5 小波增强 第十四章 图像复原 14.1 退化模型 14.1.1 连续退化模型 14.1.2 离散退化模型 14.2 复原的代数方法 14.2.1 代数复原原理 14.2.2 逆滤波复原 14.2.3 最小二乘方滤波 14.3 MATLAB 实现图像复原 14.3.1 维纳滤波复原 14.3.2 规则化滤波复原 14.3.3 Lucy-Richardson 复原 14.3.4 盲去卷积复原 14.3.5 图像复原的其它 MATLAB 函数 第十五章 图像分析 15.1 边缘检测 15.1.1 微分算子 15.1.2 Log算子 15.1.3 Canny 算子 15.2 四叉树分解 15.2.1 四叉树分解 15.2.2 四叉树 MATLAB 函数 第十六章 数学形态学操作 16.1 数学形态学的基本运算 16.1.1 结构元素矩阵 16.1.2 膨胀运算 16.1.3 腐蚀运算 16.1.4 膨胀与腐蚀的对偶关系 16.1.5 开运算和闭运算 16.1.6 击中与击不中 16.1.7 二值图像形态学处理函数 16.1.8 其它膨胀和腐蚀的基本函数 16.2 形态学的基本应用 16.2.1 边缘提取 16.2.2 连通对象标注 16.2.3 对象选择 16.2.4 二值图像面积提取 16.2.5 二值图像的欧拉数 16.2.6 移除对象 16.2.7 区域填充 16.3 查找表操作 16.4 灰度形态学 16.4.1 灰度形态学基本运算实例 16.4.2 其它函数 第十七 章 图像编码与压缩 17.1 图像编码基础 17.1.1 图像编码压缩的必要性 17.1.2 图像编码压缩的可能性 17.1.3 图像编码压缩的分类 17.1.4 图像编码压缩的评价 17.2 无损压缩编码 17.2.1 行程编码 17.2.2 哈夫曼( Huffman )编码 17.2.3 算术编码 17.2.4 词典编码 17.3 有损压缩编码 17.3.1 预测编码 17.3.2 正交变换编码 17.3.3 MATLAB 实现余弦变换压缩 17.3.4 MATLAB 实现小波变换压缩 附录 A 对象属性 附录 B 图像工具箱函数

69,370

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧