WP博客搬家到VPS问题归总

经过一天的努力终于将博客搬家到VPS,将域名从einverne.info换成blcu.tk,搬家后的博客地址http://blog.blcu.tk 于是写篇博客纪念,并记录下遇到的问题。
LNMP安装官网 http://lnmp.org/install.html
##ReadMore##
问题一:
Linux下文件权限
命令:ls -al
可以看到-rwxr-xr-x 类似的10位权限代号。该字段首个字符"-"指定文件类型,上面文件表示该文件是常规类型。其他首字符还有:
“d”目录
“l”符号链接
“c”字符专门设备文件
“b”块专门设备文件
“p”先进先出
“s”套接字
后九位 rwx r-x r-x  分为三个组,第一个三元字符组代表文件所有者的权限,第二个代表文件的组的权限,第三个代表所有其他用户的权限
字母表示的意义:r 表示允许读(查看文件中的数据),w 表示允许写(修改文件以及删除),x 表示允许“执行”(运行程序)
设置权限用到的命令是:chomd
参考

问题二:在更新插件的时候出现:要执行请求的操作,WordPress 需要访问您网页服务器的权限

要执行请求的操作,WordPress 需要访问您网页服务器的权限。 请输入您的 FTP 登录凭据以继续。 如果您忘记了您的登录凭据(如用户名、密码),请联系您的网站托管商。
据LNMP一键安装包使用者反映wordpress提示升级时,点“自动升级”出现填写FTP信息的页面,像我们这些用LNMP的很多都不安装FTP服务器。其实出现这个的问题就是Nginx的执行身份非文件属主身份。


解决方法:
假设你的wordpress安装目录为/home/wwwroot/lnmp.org
用Putty登录Linux VPS,执行:chown -R www /home/wwwroot/lnmp.org

执行上面的命令就可以将/home/wwwroot/lnmp.org下所有文件的属主改为www,这样就可以解决自动更新必须填FTP的问题。
参考

问题三:lnmp下wordpress主题修改出错
Warning: scandir() has been disabled for security reasons in /home/wwwroot/yourdomain.com/wp-includes/class-wp-theme.php on line 978
Warning: Invalid argument supplied for foreach() in /home/wwwroot/yourdomain.com/wp-includes/class-wp-theme.php on line 981
Warning: scandir() has been disabled for security reasons in /home/wwwroot/yourdomain.com/wp-includes/class-wp-theme.php on line 978
Warning: Invalid argument supplied for foreach() in /home/wwwroot/yourdomain.com/wp-includes/class-wp-theme.php on line 981

原因:scandir()函数被关闭
解决方法:
找到 /usr/local/php/etc/php.ini
如果是vi,或者vim修改这个配置文件的,使用/,进入搜索。如果是使用WinSCP,直接Ctrl+F,找到disable_functions字符,并删除scandir字符串。
重启PHP服务
/etc/init.d/php-fpm restart
参考

问题四:VPS通过SSH修改ROOT密码
通过SSH登录,输入
passwd
出现:
New UNIX password:
就可以输入新的用户密码,回车后再输一次就行了。

Retype new UNIX password:
passwd: all authentication tokens updated successfully.
参考

一些链接:
VPS LNMP 安装WordPress
VPS新手指南/教程
VPS基本命令
VPS基本命令
VPS命令
Nginx详细配置详解

Perl需注意的问题

字符串连接需要用"." 不能用+

如果运用“+”号,Perl会理解成数值运算,做算术运算。
例如:
$a = 12;
$b = '13';
print $a+$b;
输出结果就是 25
print $a.$b;
输出结果为 1213

Perl截取中文字符问题

$str="测试文本";
print substr($str,0,1);

这时候输出了一个"?",这显然不是我们想要的结果。因为在perl中,所有从外部输入的字符串(包括写在程序里的字符串)都会当成字节来处理,"print substr($str,0,1);"这句话只是把"测试文本"的第一个字节取出来,并且用print输出,然而单个字节是不能表示一个中文字符的,所以就输出了"?"。

如果想要上面的程序输出正确的结果,就需要使用decode函数把"测试文本"转换成perl内部字符串,让perl把"测试文本"当成字符串来处理,这样再用"substr($str,0,1);"截取的就不是一个字节,而是一个汉字。


use Encode;
$str=decode('gbk',"测试文本");
print encode('gbk',substr($str,0,1));


Perl练习题(更新完毕)

练习1: 屏幕提示用户输入一个高度值, 并在屏幕上打印出一个相应层
数的三角形, 如详细要求中的图示意。
while(1){
 print ("please input num:(\"q\" to exit):");
 $Inp = ;
 chomp($Inp);
 if($Inp eq "q"){
  last;
 }
 for($i = 1; $i <= $Inp ; $i++){
  for($j = 0; $j< $Inp-$i ; $j++ ){
   print(" ");
  }
  for($j = 0; $j< 2*$i-1 ; $j++){
   print("*");
  }
  print("\n");
 }
}
练习1源代码下载 ex1_print_triangle.pl

练习2:随机生成含有100道两位数”加/减/乘/除”的数学题, 要求运 算数随机,运算符也随机, 结果保存到文件中。
另,假设用户群体为小学低年级。减法结果不得小于零;除法必须整 除。
$i = 0;
while($i<100){
   print ("$Num1-$Num2 = \t");
   $i++;
  }
 }elsif($op > 2.5 and $op<=5){
  if($Num1+$Num2<=100){
   print ("$Num1+$Num2 = \t");
   $i++;
  }
 }elsif($op >5 and $op <=7.5){
  if( $Num1*$Num2 >=100){
   print ("$Num1*$Num2 = \t");
   $i++;
  }
 }elsif($op >7.5 and $op <=10){
  if($Num2 != 0 and int($Num1/$Num2)==$Num1/$Num2){
   print ("$Num1/$Num2 = \t");
   $i++;
  }
 }
}
练习2源代码下载 ex2_print_100_questions.pl

练习3:独立编写查词典和词频统计程序。
词典为dict.txt
词频统计的对象是mytext
open(Input , "dict.txt");
while($Line = ){
 chomp($Line);
 ($K,$V) = split("=>",$Line);
 $hash{$K} = $V;
}
close(Input);

while(1){
 print "Input the word u want to search:(\"q\" to exit)\n";
 $Line = ;
 chomp($Line);
 if($Line eq "q"){
  last;
 }
 if( defined $hash{$Line}){
  print "$hash{$Line}\n";
 }else{
  print "没有找到\n";
 }
}
练习3查字典源代码下载 ex3_dict.pl
dict.txt文件下载
词频统计
open(Input , "mytext");
while($Line = ){
 chomp($Line);
 foreach $Item( split(" ",$Line) ){
  $hash{$Item}++;
 }
}
close(Input);

foreach $K(sort keys %hash){
 print "$K $hash{$K} \n";
}
练习3词频分析 ex_frequency.pl
词频分析用到的mytext

练习4:统计两个文件中共同出现的单词,并输出它们在每个文件中出现 的次数。两个文件在files.rar中。
open(Input , "eng1.txt");
while($Line = ){
 chomp($Line);
 foreach $Item(split(" ",$Line)){
  $hash1{$Item}++;
 }
}
close(Input);

open(Input , "eng2.txt");
while($Line = ){
 chomp($Line);
 foreach $Item(split(" ",$Line)){
  if( defined $hash1{$Item}){
   $hash2{$Item}++;
  }
 } 
}
close(Input);

foreach $K(sort keys %hash2){
 if(defined $hash1{$K}){
  print "$K $hash1{$K} $hash2{$K}\n";
 }
}

练习4源程序下载 ex4_CountWords.pl
练习4用到的eng1eng2

练习5:合并两部词典,要求词条唯一,译文合并。词典见附件

需要合并的两部字典

练习6:输出指定路径中所有重复出现的文件的文件名(文件名包括后缀)和出现次数。


练习7:统计一个目录下文件出现哪些词,每个词出现的总频次.用函数形式,统计每个文件出现的词的情况。

请提交代码和词频表(从高频到低频排序);词频表为文本文件
(.txt);格式举例
寺庙 123
大佛 111
……
详细要求: 射雕英雄传

练习8:统计词典中所有拼音(带音调)出现的频率;
请提交代码和频率表(从高频到低频排列,使用它.txt文档)格式例子:
tian2 111
pai4 134
……

详细要求: IdiomPY

练习9:作业要求: 统计语料中的声调出现情况。输出每种音调的出现次数。

格式为(音调以数字表示)
4 1417
5 773
2 721
1 688
3 667

仅需提交代码。语料为Uebungen.txt
详细要求: 统计语料中的声调出现情况
练习9 统计语料中的声调出现情况

参考答案:

open(iD,".txt");
while($line=<iD>)
{
chomp $line;
if($line=~/^\<PY\>/)
{
@array=$line=~/([0,1,2,3,4,5])/g;
foreach  (@array) {
$hash{$_}++;
}
}
}
close(iD);
foreach  (sort keys %hash) {
print $_."\t".$hash{$_}."\n";
}


练习10:作业要求: 从语料中生成索引为拼音的字典。语料为Uebungen.txt
格式为:
mang2 茫;茫;忙
leng3 冷
you4 又
jing4 静;净;镜;境
tui3 腿
………

仅需上传代码。

详细要求: 从语料中生成索引为拼音的字典
练习10 从语料中生成索引为拼音的字典

参考答案:

open(iD,"12.txt");
while($line=<iD>)
{
chomp $line;
if($line=~/^\<PY\>/)
{
@array=$line=~/([^\>\s]+)\[([^\]]+)\]/g;
for($i=0;$i<@array;$i++){
if($i%2==1)
{
@py=$array[$i]=~/(\S+)/g;
@hz=$array[$i-1]=~/.{2}/g;
for($j=0;$j<@py;$j++)
{
$hash{$py[$j]}=$hash{$py[$j]}.';'.$hz[$j];
}
}
}
}
}
close(iD);
#tian1 天;天;天;……
open(out,">pyHzDict.txt");
foreach $ele (sort keys %hash) {
@berry=$hash{$ele}=~/([^\;]+)/g;
foreach  (@berry) {
$temp{$_}=0;
}
print out $ele."\t";
foreach  (sort keys %temp) {
print out $_.';';
}
print out "\n";
%temp=();
}
close(out);

作业11:

作业要求: 生成汉字-拼音表
从IdiomPY.txt(见参考资料-Perl语料)中生成汉字-拼音表(注
意多
音字,需要把所有拼音标出)
格式:

行 xing2;hang2
猪 zhu1;
……

作业12:

根据transcript.txt中拼音信息,生成一个带有拼音的词表(词有多音)

答案:

open(in,"transcript.txt");
while ($line=<in>) {
    chomp $line;
    if($line=~/^\<PY\>/){
        @array=$line=~/([^\>\s]+)\[([^\]]+)\]/g;
        #print @array;
        #print "\n";
        for($i=0;$i<@array-1;$i=$i+2){
            @tmpchar=$array[$i]=~/(.{2})/g;
            @tmpPY=$array[$i+1]=~/(\S+)/g;
            for($j=0;$j<@tmpchar;$j++){
                ${$dict{$tmpchar[$j]}}{$tmpPY[$j]}=0;
            }
        }
    }
}
close(in);
foreach $ele (sort keys %dict) {
    print $ele.":  ";
    foreach $e(sort keys %{$dict{$ele}}) {
        print $e.";";
    }
    print "\n";
}



练习13:

作业要求: 在练习12所使用语料库中,统计连续的单字(多字词之间、单字
和多字词之间)的转移概率。如全文共有N个单字对。每个单字对
的出现概率为其频次F除以N;
请编程输出语料库中所有的连续单字对的出现概率。
同理,输出语料库中所有的连续单字的拼音对出现的概率。

格式如
之_后 0.0003212
之_前 0.0012345
……
详细要求: 单字转移概率和拼音转移概率

练习14:

作业要求: 实现一个成语接龙游戏;

例如:
由人输入:国富民安,
机器回答:安邦定国
由人输入:……
及其回答:……
(仅仅举例,实际有的词成语词典里未必有)

练习16:
编写一个PDF爬虫,爬取中华人民共和国环保部的环境保护标准。

Google14岁生日在望月博客留言

本文链接:http://wangyueblog.com/2012/09/28/14-google-4-andriod/comment-page-1/#comment-70888

我想说你的012几乎就是我的写照,大家都是一步一步走过来,知道Google让我学会了很多,也知道了一个道理,没有什么事情是天生就会,后天遇到不懂的事情,只有自己认真去查询资料了解情况才知道。我常听到身边的人问各种问题,当然我以前也不知道,但是我会去用Google搜索,认真看完几个条目,仔细的再想想,任何事情只要想了解的,没有什么是弄不明白的。我庆幸有Google这样的工具能够帮助我了解世界,也正是因为Google重塑了的世界观,价值观。我接触网络时间不长,可能没有上面的一位长,也正是因为如此,在我将要深入使用GR的时候,正值Google全面大改,我使用旧版GR的时间不长,里面认识的人也不多。
##ReadMore##
不过我赞赏Google能够抛弃不顾一切改头换面的动力,GR新版我也一直在用(我要纠正一点的是GR没有抛弃社会化,只是将原来封锁在一个小圈子的社交扩大成了Google+)。我和上文评论还有一点的区别就是我一直是Chrome的忠实粉丝,我说过我接触网络的时间不长,但是自我测试完市场上所有浏览器后不久我就忠实于Chrome到现在(不论是国内的还是国外的,那个时候甚至还不知道IE内核和webkit区别),在某种意义上也要归功于月关博客。。再到某一天知道了可能吧,上面提到了Google推出中国,我才了解到那个时候发生的一切。
时间过得很快,或许很多人都已经淡忘Google的退出,或许我身边的人没有我就会从此再也想不起Googe,或许哪一天真的Google在大中华局域网消失了,我也不会忘了Google的。成长的过程太多太多的回忆留在Google。Picasa 1G的空间记录着我成长历程一幕幕美好的画面;(Picasa当然现在已经几乎是无限空间了)Google+默默的记录着我的一言一行,即使行星撞击地球,我也坚信下个时代的智慧生物能看到Google服务器上我的言行;Play Music记录着听过的一首首优美旋律,无论我在哪里都能随时的接上耳机聆听。Google提供太多的服务,以至于我到现在仍然能发现我没用过的Google服务,虽然我已经接入40多项。
http://1.bp.blogspot.com/-mWUVi_iADWg/T3h2m_4Mq7I/AAAAAAAAHCc/XU9IEWkq4V8/s1600/einverne_2012.04.01_23h36m32s_001_.png
最后,我希望赚足钱能够在有生之年坐上Google Car,戴上Google Glass。结合这Google Earth想去哪里就去哪里,反正Google Now会告诉我那里好不好玩。

Total Commander 常用配置(更新中)

使Total Commander启动后就最大化
最大化后再保存位置 菜单--配置--保存位置
http://www.cnblogs.com/qiantuwuliang/archive/2011/12/11/2283828.html
像Windows下F2重命名文件 The default keyboard shortcut for Renaming a file in Total Commander (TC) is “Shift + F6″. But for those who are used to Windows Explorer, “F2″ is the shortcut to rename a file. In order to use “F2″ to rename a file in TC we need to do a key remapping. Here is how to do it:
From TC Menu: “Configuration” -> “Options” -> “Misc” -> “Redefine Hotkeys”. Select “F2″, then click the button with a glasses and select command “cm_RenameOnly” for renaming a file.
在窗口另一边打开当前文件夹
Ctrl+← 或者Ctrl+→
重命名文件夹
Shift+F6
同目录复制
Shift+F5
预览文件
Ctrl+Q
切换光标到左右界面
Tab
将焦点定位到命令行
->(键盘上的向右键) 参考    更多参考
善用佳软的文章


Keyboard layout
Key Action

F1 Help
F2 Reread source window
F3 List files
F4 Edit files
F5 Copy files
F6 Rename or move files
F7 Create directory
F8 or DEL Delete files to recycle bin /delete directly - according to configuration
F9 Activate menu above source window (left or right)
F10 Activate left menu or deactivate menu
ALT+F1 change left drive
ALT+F2 change right drive
ALT+F3 Use alternate (external or internal) viewer
ALT+SHIFT+F3 Start Lister and load file with internal viewer (no plugins or multimedia)
ALT+F4 Exit | Minimize (with option MinimizeOnClose in wincmd.ini)
ALT+F5 Pack files
ALT+SHIFT+F5 Move to archive
ALT+F6 Unpack specified files from archive under cursor, or selected archives (use Alt+F9 on Windows 95)
ALT+F7 Find
ALT+F8 Opens the history list of the command line
ALT+F9 Same as ALT+F6 (because ALT+F6 is broken on Windows 95)
ALT+SHIFT+F9 Test archives
ALT+F10 Opens a dialog box with the current directory tree
ALT+F11 Opens left current directory bar (breadcrumb bar)
ALT+F12 Opens right current directory bar (breadcrumb bar)
ALT+SHIFT+F11 Focus the button bar to use it with the keyboard
SHIFT+F1 Custom columns view menu
SHIFT+F2 Compare file lists
SHIFT+F3 List only file under cursor, when multiple files selected
SHIFT+F4 Create new text file and load into editor
SHIFT+F5 Copy files (with rename) in the same directory
SHIFT+CTRL+F5 Create shortcuts of the selected files
SHIFT+F6 Rename files in the same directory
SHIFT+F8/DEL Delete directly / delete to recycle bin - according to configuration
SHIFT+F10 Show context menu
SHIFT+ESC Minimizes Total Commander to an icon
ALT+left/right Go to previous/next dir of already visited dirs
ALT+down Open history list of already visited dirs (like the history list in a WWW browser)
NUM + expand selection (configurable: just files or files and folders)
NUM - shrink selection
NUM * invert selection (also with shift, see link)
NUM / restore selection
SHIFT+NUM + Like NUM +, but files and folders if NUM + selects just files (and vice versa)
SHIFT+NUM - Always removes the selection just from files (NUM - from files and folders)
SHIFT+NUM * Like NUM *, but files and folders if NUM * inverts selection of just files (and vice versa)
CTRL+NUM + select all (configurable: just files or files and folders)
CTRL+SHIFT+NUM +
select all (files and folders if CTRL+NUM + selects only files)
CTRL+NUM - deselect all (always files and folders)
CTRL+SHIFT+NUM -
deselect all (always files, no folders)
ALT+NUM + select all files with the same extension
ALT+NUM - remove selection from files with the same extension
CTRL+PgUp
or Backspace Change to parent directory (cd ..)
CTRL+< Jump to the root directory (most European keyboards)
CTRL+\ Jump to the root directory (US keyboard)
CTRL+PgDn Open directory/archive (also self extracting .EXE archives)
CTRL+left/right Open directory/archive and display it in the target window. If the cursor is not on a directory name, or the other panel is active, then the current directory is displayed instead.
CTRL+F1 File display 'brief' (only file names)
CTRL+SHIFT+F1 Thumbnails view (preview pictures)
CTRL+F2 File display 'full' (all file details)
CTRL+SHIFT+F2 Comments view (new comments are created with Ctrl+Z)
CTRL+F3 Sort by name
CTRL+F4 Sort by extension
CTRL+F5 Sort by date/time
CTRL+F6 Sort by size
CTRL+F7 Unsorted
CTRL+F8 Display directory tree
CTRL+SHIFT+F8 Cycle through separate directory tree states: one tree, two trees, off
CTRL+F9 Print file under cursor using the associated program
CTRL+F10 Show all files
CTRL+F11 Show only programs
CTRL+F12 Show user defined files
TAB Switch between left and right file list
SHIFT+TAB Switch between current file list and separate tree (if enabled)
Letter Redirect to command line, cursor jumps to command line
INSERT Select file or directory.
SPACE Select file or directory (as INSERT). If SPACE is used on an unselected directory under the cursor, the contents in this directory are counted and the size is shown in the "full" view instead of the string <DIR>. This can be disabled through 'Configuration' - 'Options' - 'Operation' - 'Selection with Space'.
ENTER Change directory / run program / run associated program / execute command line if not empty. If the source directory shows the contents of an archive, further information on the packed file is given.
SHIFT+ENTER 1. Runs command line / program under cursor with preceding command /c and leave the program's window open. Only works if NOCLOSE.PIF is in your Windows directory!
2. With ZIP files: use alternative choice of these (as chosen in Packer config): (Treat archives like directories <-> call associated program, i.e. winzip or quinzip)
3. In the list of last used dirs (History, Ctrl+D), open the directory on a new Tab.
ALT+SHIFT+ENTER
The contents of all directories in the current directory are counted. The sizes of the directories are then shown in the "full" view instead of the string <DIR>. Abort by holding down ESC key.
ALT+ENTER Show property sheet.
CTRL+A select all
CTRL+B Directory branch: Show contents of current dir and all subdirs in one list
CTRL+SHIFT+B Selected directory branch: Show selected files, and all in selected subdirs
CTRL+C Copy files to clipboard
CTRL+D Open directory hotlist ('bookmarks')
CTRL+F Connect to FTP server
CTRL+SHIFT+F Disconnect from FTP server
CTRL+I Switch to target directory
CTRL+L Calculate occupied space (of the selected files)
CTRL+M Multi-Rename-Tool
CTRL+SHIFT+M Change FTP transfer mode
CTRL+N New FTP connection (enter URL or host address)
CTRL+P Copy current path to command line
CTRL+Q Quick view panel instead of file window
CTRL+R Reread source directory
CTRL+S Open Quick Filter dialog and activate filter (deactivate with ESC or CTRL+F10)
CTRL+SHIFT+S Open Quick Filter dialog and reactivate last-used filter
CTRL+T Open new folder tab and activate it
CTRL+SHIFT+T Open new folder tab, but do not activate it
CTRL+U Exchange directories
CTRL+SHIFT+U Exchange directories and tabs
CTRL+V Paste from clipboard to current dir.
CTRL+W Close currently active tab
CTRL+SHIFT+W Close all open tabs
CTRL+X Cut files to clipboard
CTRL+Z Edit file comment
CTRL+UP Open dir under cursor in new tab
CTRL+SHIFT+UP Open dir under cursor in other window (new tab)
CTRL+TAB Jump to next tab
CTRL+SHIFT+TAB
Jump to previous tab

ALTGR+Letter(s) or
CTRL+ALT+Letter(s)
Quick search for a file name (starting with specified letters) in the current directory
(Support hotkeys Ctrl+X, Ctrl+C, Ctrl+V and Ctrl+A; use Ctrl+S for search filter on/off)

Other keys: See command line

键盘布局
快捷键不同版本可能不一样,不同配置也可能不一样
F1帮助
F2代重读源窗口
F3列出文件
F4键编辑文件
F5键复制文件
F6调重命名或移动文件
F7键创建目录
F8键或DEL删除文件到回收站/删除直接 - 根据配置 
F9键激活上面的源窗口(左或右)菜单
F10激活或关闭菜单左边菜单

Alt + F1改变左侧通行 
Alt + F2切换右侧
ALT键+ F3键使用备用(外部或内部)观众
ALT键+ SHIFT + F3键开始加载文件与李斯特和内置浏览器(无插件或多媒体)
ALT + F4组合退出|最小化(与MinimizeOnClose在wincmd.ini选项)
ALT键+ F5键Pack文件
ALT键+ SHIFT + F5键移动到存档
ALT键+ F6键指定解压光标下的归档文件,或选择存档(使用Alt + F9键在Windows 95)
ALT键+ F7键查找
ALT键+ F8键打开命令行历史列表
ALT + F9键为Alt + F6键相同(因为ALT键+ F6是在Windows 95打破)
ALT键+ SHIFT + F9键测试档案
ALT键+ F10键打开一个当前目录树对话框
ALT键+ F11键打开当前目录左边
ALT键+ F12键打开右边的当前目录
ALT键+ Shift + F11键对焦按钮栏来使用它的键盘
SHIFT + F1键自定义列视图菜单
SHIFT键+ F2键比较文件清单
SHIFT键+ F3键只列出光标下的文件,当选择多个文件
Shift + F4键进入编辑器中创建新的文本文件并载入 
SHIFT键+ F5键复制文件(重命名)在同一目录
Shift + Ctrl键+ F5键选定的文件创建快捷方式
SHIFT键+ F6调重命名文件在同一目录
SHIFT键+ F8/DEL直接删除/删除到回收站 - 根据配置
按Shift + F10显示上下文菜单
Shift + Esc键最小化总指挥官为一个图标
Alt +左??/右移动到前一个/下一个已访问目录目录
Alt +向下公开赛历史已经访问目录列表(如WWW浏览器中的历史列表)
数+扩展的选择(配置:刚才的文件或文件和文件夹)
NUM个 - 收缩选择
NUM个*反向选择(也有变化,见链接)
NUM个/恢复选择
SHIFT键+数+数+一样,但文件和文件夹,如果数+只会选择文件(反之亦然)
SHIFT键+ NUM个 - 总是移除选择刚刚从文件(招 - 从??文件和文件夹)
SHIFT键+ NUM个行数* *一样,但如果NUM个文件和文件夹*反转,只是文件的选择(反之亦然)
按Ctrl +数+选择全部(配置:刚才的文件或文件和文件夹)
按Ctrl + Shift +数+
选择所有(文件和文件夹,如果按CTRL +数字+只选择文件)
按Ctrl + NUM个 - 取消所有(始终文件和文件夹)
按Ctrl + Shift + NUM个 -
取消所有(始终文件,没有文件夹)
ALT键+数字+选择具有相同扩展名的所有文件
ALT键+数字 - 删除文件,使用相同的扩展选择
按Ctrl + PgUp键
或Backspace键更改到父目录(cd ..)
按Ctrl + <跳转到根目录(多数欧洲键盘)
按Ctrl + \跳转到根目录(美国键盘)
按Ctrl + PgDn键打开目录/档案(也自我压缩。exe档案)
按Ctrl +左/右打开目录/档案,并显示在目标窗口。如果光标不在一个目录名称或其它面板是活动的,那么当前目录改为显示。
按Ctrl + F1的文件显示,短暂'(唯一的文件名)
按Ctrl + Shift + F1的缩略图视图(预览图片)
按Ctrl + F2键文件显示'全'(所有文件的详细信息)
按Ctrl + Shift + F2键查看评论(新意见与按CTRL + Z创建)
按Ctrl + F3键按姓名排序
按Ctrl + F4组合排序方式延长
CTRL + F5组合排序/时间日期
按Ctrl + F6键按大小排序
按Ctrl + F7键未分类
按Ctrl + F8键显示目录树
按Ctrl + Shift + F8键循环切换不同的目录树状态:一树,二树,关闭
按Ctrl + F9键光标下使用打印文件关联的程序
按Ctrl + F10键显示所有文件
按Ctrl + F11键只显示方案
按Ctrl + F12键显示用户定义的文件
TAB键切换左,右的文件列表
SHIFT + TAB键开关(如果已启用)与当前文件列表和单独的树
信重定向到命令行,光标跳转到命令行
插入选择文件或目录。
空间选择文件或目录(插入)。如果空间是不特定的目录下使用游标,在此目录的内容和规模都算在“全”,而不是字符串<目录视图中。这可以被禁用通过'配置' - '选项' - '操作' - '与空间选择'。
确认所选目录/运行程序/运行相关的程序/执行命令行,如果不是空的。如果源目录显示存档的内容,在打包的文件,给出进一步的信息。
SHIFT + ENTER键1。运行命令行/与前面的命令下光标方案/ C和离开程序的窗口打开。只有当NOCLOSE.PIF您的Windows目录的!
2。与ZIP文件:使用这些替代选择(如包装机选择配置):(像对待档案目录“ - ”调用关联的程序,如WinZip或quinzip)
3。在去年使用的目录(历史,按Ctrl + D)的名单中,打开一个新标签的目录。
ALT键+ SHIFT + ENTER键
在当前目录中所有目录的内容被计算在内。该目录的大小,然后显示在“全”,而不是字符串<目录视图。中止按住ESC键。
ALT + ENTER键显示属性表。
按Ctrl + A选择所有
按Ctrl + b的目录分支:显示当前目录的内容,在一个所有子目录列表
按Ctrl + Shift + B键选择目录分支:显示选定的文件,并在选定的所有子目录
按Ctrl + C复制文件到剪贴板
按CTRL + D打开目录热点('书签')
按Ctrl + F连接到FTP服务器
按CTRL + SHIFT键+ F断开FTP服务器
按Ctrl +我切换到目标目录
Ctrl + L键计算占用空间(选定的文件)
按CTRL +米多色重新命名,工具
按Ctrl + Shift + M的变化FTP传输模式
按Ctrl + N新FTP连接(输入网址或主机地址)
按CTRL + P复制当前路径到命令行
按Ctrl + Q的快速浏览面板,而不是文件的窗口
按Ctrl + R重读源目录
按Ctrl + S打开快速筛选对话框,并激活滤波器(Esc或Ctrl + F10键停用)
按CTRL + SHIFT键+ S打开快速筛选对话框,并重新恢复上次使用的过滤器
按Ctrl + T打开新文件夹标签并激活它
按CTRL + SHIFT键+ T打开新文件夹选项卡,但不激活它
按Ctrl + U键Exchange目录
按CTRL + SHIFT键+ U交换目录和标签
CTRL + V粘贴到当前目录从剪贴板。
Ctrl + W关闭当前活动的标签
按Ctrl + Shift + W关闭所有打开的标签
文件CTRL + X剪切到剪贴板
按CTRL + Z编辑文件的注释
CTRL +向上打开目录下光标在新标签
按Ctrl + Shift +向上打开在其他窗口(新标签)游标目录
CTRL + TAB键跳转到下一个标签
按CTRL + SHIFT + TAB键
跳转到上一个标签

ALTGR +字母(S)或

快速搜索文件名(使用指定的字母开始)在当前目录
(支持热键Ctrl + X键,按Ctrl + C,Ctrl + V键和Ctrl + A的;用于搜寻按Ctrl + S的过滤器开/关)

其他键:查看命令行


Total Commander快捷键文档下载

Perl文件操作与函数-动态语言程序设计4

Perl文件操作

打开一个文件操作

open(FileVar, filename) ;
FileVar为文件句柄,filename为文件名
打开方式
  • 只读
  • open (FileVar, “<File.txt”);
  • open (FileVar, “>File.txt”);
  • 添加
  • open (FileVar, “>>File.txt”);
判断是否打开成功
if (open(MYFILE, "myfile")) {    # here's what to do if the file opened successfully    }
unless (open (MYFILE, "file1")) {    die ("cannot open input file file1\n");    }
open (MYFILE, "file1") || die ("Could not open file");
die语句语法

关闭文件

close(FileVar);
文件打开以后一定要关闭
$File=“File.txt”;
open(FileVar,”>$File”);

close();

读文件

$line = <FileVar>;    
从文件中读一行,包含回车换行。
成功读取返回1;否则返回 0
$line = <STDIN>;
从屏幕读取用户输入一行
@array = < FileVar >;
把文件的全部内容读入数组,文件的每一行(含回车符)为数组的一个元素。
例子:
While ( $Line=<FileVar> ){
chop($Line);
….
}

写文件

print FileOut "Here is an output line.\n";
往屏幕上输出
 print STDOUT "Here is an output line.\n";
 print "Here is an output line.\n";
例子:
open(FileOut,”>Out.txt”)
print FileOut "Here is an output line.\n";  
close(FileOut)

测试文件状态

-s  文件大小
$Size=-s “file.txt”;
-d  是否为目录
if ( -d “file.txt” ){

}
-e  是否存在
if ( -e “file.txt” ){

}
-r  是否可读
if ( -r “file.txt” ){

}
-w  是否可写
if ( -w “file.txt” ){

}

删除文件
unlink(“File.txt”);
文件改名
rename(“old.txt”,”new.txt”);
建立目录
mkdir(“dir1”);
改变当前路径
chdir(“c:/dir1”);
删除目录
rmdir(“c:/dir1”);
得到当前目录
$CurrentDir=cwd();

取得一个目录下所有文件和目录信息
opendir(DIR,"D:\\Tmp\\");
@File=readdir(DIR);
foreach (@File){
print "Dir1:$_";
}
close(DIR);

子程序

子程序即执行一个特殊任务的一段分离的代码,它可以使减少重复代码且使程序易读。PERL中,子程序可以出现在程序的任何地方。

定义和调用子程序

hello();
sub hello
{
print "hello!";
}

参数传递

@testit=("a","b");
hello("test",@testit);
sub hello
{
my($File,@Array)=@_;
print "$File\n";
print "@Array";
}

变量的有效范围

在函数中定义局部变量
my
sub Function{
my %arrayVar=();
my %mapVar=();
}
local
sub Function{
local @arrayVar=();
local %mapVar=();
Function1();
}
sub Function1}
print “@arrayVar”;
{


查字典子程序:通过子程序重写了练习3
OpenText("dict.txt");
while(1){
 print"input a word(press \'q\' to exit):";
 $Line=;#读取输入字符串
 chomp($Line);
 if($Line eq "q")
 { 
  last; #退出循环
  }
 else{
  search($Line);
 }
}
sub OpenText{
 my ($file)=@_;
 open(In,"$file");
 my $Line;
 while($Line=){
  chomp($Line);
  my @item=split("=>",$Line);
  if(@item==2){
   $hash{$item[0]}=$item[1];
  }
 }
close(In);
}

sub search{
 my($Line)=@_;
 if ( defined $hash{$Line} )
 {  
  print "$hash{$Line}\n";
 }

}

-------------------------------------------------------------------------------------
指令:die参考
语法:die LIST
说明:会把LIST字符串显示出来,并退出程序。常常和 $! 这个代表错误信息变量一起使用。
示例:
open(FILE,"$filename")||die "不能打开文件$!\n; # 如果打开文件失败的话,就会显示出错误的信息,之后再退出程序。

Perl数组和哈希-动态语言程序设计3

继上篇讲到Perl语言的简单变量类型,这篇文章讲Perl语言另外两个变量类型----复杂变量类型。Perl中一共只有三种变量类型,除了上一篇讲到的以 $ 符号开头的简单变量之外,还数组和哈希两种变量。
##ReadMore##

数组

数组变量

  • 以 @ 开头
  • 数组的的元素可以是数值、字符串或两者的混合

数组的赋值

  • @array = (2, 3, 4);
  • @array = (‘str1’, “\tstr2”, “str3”);
  • $str4=“str4”; @ array = (‘str1’, “\tstr2”, $str4);
  • @array = (1..3,4,5);
  • @day_of_month = ("01".."31")
  • @array = (e..f); @array= ($a, $b, @array, $g);
  • @array = ();

数组包含元素的个数


  • $Size= @array;

访问数组元素与遍历

$array[no];
@array=(1,2,3,4,5); $Element=$array[0];
foreach $Element(@array){print “$Element”;}
for($i=0; $i <@array;$I++){print “$array[$i]”;}

其他赋值操作


  • ($First)= @array;
  • ($First,$Second)= @array;
  • ($First,$Second,@SubAraay)= @array;
  • @SubAraay = @array[0,1]; 
  • @Array[0,1] = ("string", 46); 

有关数组的操作函数


  • push(@Array,$Str) ;               #在结尾添加一个元素
  • $Str =push(@Array) ;            #在结尾删除一个元素
  • unshift (@Array, $Str) ;          #在头添加一个元素
  • $Str = shift (@Array) ;           #在头删除一个元素
  • @sorted=sort(@Array);          #只有在赋值时有效
  • @ reversed=reverse(@Array); #只有在赋值时有效
  • @array=split(“; ”,$String);      #字符串拆解
  • $String =join(“;”, @array);         #字符串连接
  • chop(@array);                              #对每个元素去掉最后一个字符
  • chomp(@array);                          #对每个元素去掉最后一个换行符

哈希

哈希变量


  • 以%开头表示哈希变量
  • 集合((key1,value1), (key2,value2),… (keym,valuem))
  • Key   为数值或者字符串
  • Value 为数值、者字符串或者引用

哈希的赋值


  • %Hash=();
  • %Ages = ("Michael Caine", 39, "Dirty Den", 34, "Angie", 27);
  • @fruit = ("apples",17,"bananas",9,"oranges","none"); %fruitHash = @fruit;
  • $var1, $var2, %myarray) = @list
  • @Key=keys(%hash);
  • @value=values(%hash);

访问哈希表


  • $ages{"Michael Caine"}; # Returns 39
  • $ages{"Dirty Den"}; # Returns 34

增加元素

$hash{$key}=$value;

删除元素

delete ($Hash{$Key});

查找

if ( defined $hash{$element} ){print “$hash{$element}”;}

遍历

foreach $person (keys %ages){print "$person $ages{$person}\n";}
foreach $person (sort keys %ages){print "$person $ages{$person}\n";}

%records = ("Maris", 61, "Aaron", 755, "Young", 511);
while (($holder, $record) = each(%records)) {print "$holder $record \n";} 

Perl语言基本语法-动态语言程序设计2

第一个Perl程序
Perl程序的扩展名为 pl
print "Hello world";

程序结构
# the demo program
$str = "hello world";
print "$str/n";
...
Func();
...
sub Func(){
print "this is the function";
}

简单变量类型

变量以$开头

整型 
十进制 $x = 12345;
8进制 $x = 020;(16)
16进制 $x = 0x20; (32)
浮点数 
11.4 、 -0.3 、.3 、 3. 、 54.1e+02 、 5.41e03
字符串
$str = "this is a string";
$str = 'this is a string';


双引号内可以包含转义字符和其他变量
在字符串中包含  $ @ " \ 前面要加转义字符 \

\n    new line
\t     tab


单引号内就是字符本身,单引号支持多行赋值
在字符串中包含  ‘ 前面要加转义字符 \

简单变量的操作符


算术操作符
+, -, *, **, %,  -
整数比较操作符
<, =, >, !=, >=, <=,<=>
赋值操作符
+=.-=,*=,/=,**=,%=,
自增自减操作符
++,--

控制结构

结构块

{
    an expression;
    another expression;
    last expression;
}

if语句

if(expression){
     one expression;
}
if(expression){
    an expression;
    another expression;
    last one;
}then{
     ....
}


if (expression) {
an expression;
another expression;
last one
} elsif (expression) {

} elsif (expression) {

}else{
}

if语句一定需要花括号包含判断之后的语句块,即使只有一句。Then语句也是一样。


除非语句块


unless (expression) {
an expression;
another expression;
last one
}

=?:语句
$foo = ($j < 0)  ?   ( - $j )   :   $j ;
lvalue = expression ? if_true : if_false ;

循环语句(LOOP)

while循环
while ( expression )  {
statements...
}
# must use braces !!!

while ( not expression )  {
statements...
}
for循环
for ( init ; conditional ; re-init )  {
statements...
}

for ($i=0; $i<10; $i++){
print “$i\n”;
}

while (expression) {
bla...
next;
bla...
}
next相当与C/C++,Java中的continue
while (expression) {
bla...
last;
bla...
}
last相当与break



Android 3D立方体

简单的入门程序,实现一个不断绕x轴,y轴旋转的彩色立方体
在Android中我们使用GLSurfaceView来显示OpenGL视图,GLSurfaceView:是其中很重要的一个类,此类位于android.opengl包下,用于管理是一块可以是复合视图机器人系统的内存的特殊的曲面。管理一个使表面呈现 OpenGL 的 EGL 显示。接受一个用户提供输入Render对象进行显示。从 UI 线程实现一个专用线程渲染界面实现3D性能。支持按需要和连续的呈现。 包装、 跟踪,和检查 OpenGL 渲染器调用的错误。所以首先我们需要创建一个GLSurfaceView。
##ReadMore##
import android.app.Activity;
import android.opengl.GLSurfaceView;
import android.os.Bundle;
import android.view.Window;

public class mainActivity extends Activity {

 CubeRenderer mCubeRenderer;
 /** Called when the activity is first created. */
 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  requestWindowFeature(Window.FEATURE_NO_TITLE); // 去掉标题
  GLSurfaceView GLView = new GLSurfaceView(this); //创建一个GLSurfaceView
     mCubeRenderer = new CubeRenderer();
  GLView.setRenderer(mCubeRenderer);
  setContentView(GLView);
 }
}
接下来我们的主要工作就是去创建一个继承Renderer接口的CubeRenderer。Renderer是一个专门用来渲染3D的接口。继承它,我们需要重载以下方法:
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.nio.FloatBuffer;

import javax.microedition.khronos.egl.EGLConfig;
import javax.microedition.khronos.opengles.GL10;

import android.opengl.GLU;
import android.opengl.GLSurfaceView.Renderer;

public class CubeRenderer implements Renderer {

 float box[] = new float[] {
   // FRONT
   -0.5f, -0.5f,  0.5f,
    0.5f, -0.5f,  0.5f,
   -0.5f,  0.5f,  0.5f,
    0.5f,  0.5f,  0.5f,
   // BACK
   -0.5f, -0.5f, -0.5f,
   -0.5f,  0.5f, -0.5f,
    0.5f, -0.5f, -0.5f,
    0.5f,  0.5f, -0.5f,
   // LEFT
   -0.5f, -0.5f,  0.5f,
   -0.5f,  0.5f,  0.5f,
   -0.5f, -0.5f, -0.5f,
   -0.5f,  0.5f, -0.5f,
   // RIGHT
    0.5f, -0.5f, -0.5f,
    0.5f,  0.5f, -0.5f,
    0.5f, -0.5f,  0.5f,
    0.5f,  0.5f,  0.5f,
   // TOP
   -0.5f,  0.5f,  0.5f,
    0.5f,  0.5f,  0.5f,
    -0.5f,  0.5f, -0.5f,
    0.5f,  0.5f, -0.5f,
   // BOTTOM
   -0.5f, -0.5f,  0.5f,
   -0.5f, -0.5f, -0.5f,
    0.5f, -0.5f,  0.5f,
    0.5f, -0.5f, -0.5f,
  };

 FloatBuffer cubeBuff;
 
 float xrot = 0.0f;
 float yrot = 0.0f;
 
 /**
  * 将float数组转换存储在字节缓冲数组
  * @param arr
  * @return
  */
 public FloatBuffer makeFloatBuffer(float[] arr) {
  ByteBuffer bb = ByteBuffer.allocateDirect(arr.length * 4);//分配缓冲空间,一个float占4个字节
  bb.order(ByteOrder.nativeOrder()); //设置字节顺序, 其中ByteOrder.nativeOrder()是获取本机字节顺序
  FloatBuffer fb = bb.asFloatBuffer(); //转换为float型
  fb.put(arr);        //添加数据
  fb.position(0);      //设置数组的起始位置
  return fb;
 }
 
 public CubeRenderer() {
  // TODO Auto-generated constructor stub
  cubeBuff = makeFloatBuffer(box);//转换float数组
 }
 
 
 protected void init(GL10 gl) {
  gl.glClearColor(0.0f, 0.0f, 0.0f, 1.0f);//设置清屏时背景的颜色,R,G,B,A
  
  gl.glEnable(GL10.GL_DEPTH_TEST); //启用深度缓存
  gl.glEnable(GL10.GL_CULL_FACE);  //启用背面剪裁
  gl.glClearDepthf(1.0f);    // 设置深度缓存值
  gl.glDepthFunc(GL10.GL_LEQUAL);  // 设置深度缓存比较函数,GL_LEQUAL表示新的像素的深度缓存值小于等于当前像素的深度缓存值(通过gl.glClearDepthf(1.0f)设置)时通过深度测试 
  gl.glShadeModel(GL10.GL_SMOOTH);// 设置阴影模式GL_SMOOTH
 }
 
 public void onSurfaceCreated(GL10 gl, EGLConfig config) {
  // TODO Auto-generated method stub
  init(gl);
 }
 
 public void onSurfaceChanged(GL10 gl, int w, int h) {
  // TODO Auto-generated method stub
  gl.glViewport(0, 0, w, h); //设置视窗
  gl.glMatrixMode(GL10.GL_PROJECTION); // 设置投影矩阵
  gl.glLoadIdentity();  //设置矩阵为单位矩阵,相当于重置矩阵  
  GLU.gluPerspective(gl, 45.0f, ((float) w) / h, 0.1f, 10f);//设置透视范围 
 }
 
 public void onDrawFrame(GL10 gl) {
  // TODO Auto-generated method stub
  gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);// 清除屏幕和深度缓存
  
  gl.glMatrixMode(GL10.GL_MODELVIEW);   //切换至模型观察矩阵
  gl.glLoadIdentity();// 重置当前的模型观察矩阵
  GLU.gluLookAt(gl, 0, 0, 3, 0, 0, 0, 0, 1, 0);//设置视点和模型中心位置
 
  gl.glVertexPointer(3, GL10.GL_FLOAT, 0, cubeBuff);//设置顶点数据
  gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);
 
  gl.glRotatef(xrot, 1, 0, 0);  //绕着(0,0,0)与(1,0,0)即x轴旋转
  gl.glRotatef(yrot, 0, 1, 0);
  
  gl.glColor4f(1.0f, 0, 0, 1.0f);   //设置颜色,红色
  gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 0, 4);  //绘制正方型FRONT面
  gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 4, 4);
 
  gl.glColor4f(0, 1.0f, 0, 1.0f);
  gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 8, 4);
  gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 12, 4);
  
  gl.glColor4f(0, 0, 1.0f, 1.0f);
  gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 16, 4);
  gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 20, 4);
 
  xrot += 1.0f;
  yrot += 0.5f;
 }

}



参考:http://www.linuxidc.com/Linux/2011-09/43751.htm

Blogger添加豆瓣秀

豆瓣是一個SNS性質的網站,雖然我沒有G+那樣經常的上這個網站,但是豆瓣卻是一個不可或缺的網站,我在看任何電影,任何書籍之前總會到豆瓣去看看評價,評判一下電影或者書籍值不值得一看,所以長時間下來上面積累了很多我看過或者想看的書籍或電影。

那天偶然間看到豆瓣秀的插件還能夠放在Blogger上,果斷試了下,因為博客本身並沒有太多圖片,發現加上去之後效果還不錯就放著了。

YouTube居中内嵌

Blogger中常常要嵌入YouTube视频,但是YouTube给出的代码都是通过<iframe>标记,这个标记在HTML5中有改进,但是在Blogger下通常就会出现偏在一边的情况。
所以通过在<iframe>标记外面嵌套一层<div>标记即可。

<div align="center">
YOUTUBE VIDEO CODE
</div>

参考:1

时尚与科技的结合 Google Glass亮相纽约时装周(转,译)

Google Glass Graces the Runway at New York Fashion Week
冷酷的高科技產品融入時尚元素抑或是時尚的單品加入科技含量,科技與時尚的聯姻為我們的生活帶來了更多色彩和可能性。在上周9月8號開幕的紐約時裝周(New York Fashion Week)上,靚麗的模特就上演了一場時尚與科技結合的盛宴,著名時尚品牌黛安·馮芙絲汀寶(Diane von Furstenberg/DVF)的模特在這次的時裝周上帶着Google新推出的Google Glass登上T台,盡顯科技時尚.
A model wearing Google Glass backstage at Diane von Furstenberg’s show in Lincoln Center.

Models recorded video using Google Glass, which will be compiled into a short film.

更多照片请查看Google+信息流#DVFthroughGlass
或查看DVF Google+主页
参考:
Mashable
http://www.hksilicon.com/kb/articles/87621/Google-Glass
http://www.leiphone.com/0910-liuyun-google-glass-graces-the-runway-at-new-york-fashion-week.html

胡德平回忆父亲胡耀邦:一生中有两大遗憾


  父亲是个闲不住的人,1987年,他不再担任中央的重要工作以后,经常向我讲:还可以做些什么事情?他说他自己一生中有两大遗憾:一是不懂外语;二是不会中国古诗词的平仄格律。他选择了古诗文的习作。

  胡耀邦(资料图)

  读书频道转载本文只以信息传播为目的,不代表认同其观点和立场
##ReadMore##
  父亲是个闲不住的人,1987年,他不再担任中央的重要工作以后,经常向我讲:还可以做些什么事情?他说他自己一生中有两大遗憾:一是不懂外语;二是不会中国古诗词的平仄格律。他选择了古诗文的习作。

  一类诗词是他送给他的老战友、老同志、老朋友的诗,如他在读完萧克将军《浴血罗霄》小说以后,给萧克将军写下这样一首诗:

  寂寞沙场百战身,

  青史盛留李广名。

  夜度将军罗霄曲,

  清香伴我到天明。

  井冈山时期,毛主席赞萧克同志为“白袍小将”。“文革”中,萧克致信毛主席说,那时红军队伍每多一个人,毛主席都说好呀,我们队伍又多了一个人。信中意思是希望毛主席团结大多数人。我问,为何把飞将军李广和萧克伯伯相提呢?父亲说:“冯唐易老,李广难封”。按萧克同志的资历、条件、贡献来说,本应尽享大将名誉的,但革命队伍中有些事儿也说不清啊。

  一类是给他的老熟人、老部下写的,如给魏巍同志的诗:

  禹域乾坤变,

  人间爪鸿新。

  樑音千百啭,

  此曲最牵情!

  魏巍写作的《谁是最可爱的人》,产生过很好的社会影响,他曾在父亲所在的华北野战军三纵队工作过。改革开放以来,他的思想变化很大,火气也很大,虽然我反对他的观点,但我也曾为他写过一封信反映情况,不赞成对他那种批评的方式。

  当然也有些初次见面的朋友,相处一段时间,他也给别人题诗,因为人家恳请,赠送新朋友的。但有时也有个别情况是他不写的。一位山东干部告诉我,他曾恳请父亲给他写诗或题字,请求好几次。最后我父亲给他说了这么一段话:“我可以给你写字,但我不能写,为什么?因为你还年轻,还有前途”。父亲就是这样一个有情有义的人。

  最后,还有一种情况:他还写过一些诗词,赠送的却是他一面未识的同志,如甘肃作家姜安同志。姜安同志是一位坚强与疾病顽症作抗争的女作家。她写过一篇文章,记述我的二弟刘湖出生不久,就因父母要上前线,无奈将他送给延安的劳动模范刘世昌同志的故事。

  父亲是个闲不住的人,1987年,他不再担任中央的重要工作以后,经常向我讲:还可以做些什么事情?他说他自己一生中有两大遗憾:一是不懂外语;二是不会中国古诗词的平仄格律。他选择了古诗文的习作。
  1988年,她又来信问候我父亲的身体,父亲有感提笔而作,并且连作三首诗,最后一诗是这样写的:

  沧桑变化寻常事,

  人间悲欢最牵魂。

  谁能偷得蟠桃果,

  怜取卿卿锦绣文。


       第一句似乎是指他的身体、健康和工作变化。第二句则是指人间的悲欢离合,大概也包括他对家庭的情感和责任。在战争年代,父母亲把自己刚刚生下的孩子送与他人,即便是相熟的同志,毕竟心情也不会是那么平静的,怎不牵肠挂肚?母亲送来亲生的儿子并多次探望刘家,嘱咐刘家:一、一定要给孩子讲卫生,二、要到上学年龄时一定让他上学。一一嘱咐妥当,才随父亲奔赴前线。后两句则是夸奖姜安同志的文章写得好,把文章比喻为从天上偷取下来的锦绣文章。

  当然父亲的诗词,也有对当时不良风气,腐朽意识的批评,他认为不好的事情绝不同流合污。1988年8月,他在烟台休息,我带着两个孩子去看他,他乐呵呵地拿出李白的一首诗,给我们诵读,边读边笑,边称赞,以后他作了一首《饮酒歌》,前四句就是引李白的原诗:

  天若不爱酒,酒星不在天。

  地若不爱酒,地应无酒泉。

  天地既爱酒,爱酒不愧天。

  酒价年年涨,酒瘾月月添。

  量小非君子,醉昏才算仙。

  滚他妈的蛋,为政在清廉。

  父亲不是反对喝酒,他平日兴致好些,也喝一点。他反对的就是那种浪费公款,假公济私,不办实事,个人利益、帮派利益至上的,对人民事业又毫无作为的人。父亲对内部同志的宴请,非常提倡四菜一汤。当他在1980年左右知道全国全年的公款宴请竟达到200亿元时,他既痛心公款浪费,更忧虑一些同志究竟把多少心思用于发展经济,用于体制的创新。为何他提倡四菜一汤呢?若有人愿做一番考证,我倒有一则史料。

  1981年5月2日,父亲给我讲了一则逸事:“1953年9月的一天,我出国访问回来。主席在丰泽园的颐年堂(请我)吃饭,(主席平常是)三菜一汤。叶子龙同志说,主席的习惯是三菜一汤,这次请你是四菜一汤。下午两点半吃的。主席临时请来罗瑞卿同志。吃完饭以后,我们共同乘车到现在的八一湖一转。天快黑时回来。”他提倡四菜一汤,是否缘于此,待考。现在宴请是否也不必拘泥于此,但如今吃喝得热闹不堪,又有何必要呢?

参考资料:胡德平 (维基)
文Via:http://publish.dbw.cn/system/2012/08/26/054184058.shtml

A题 葡萄酒的评价(数学建模)

2012高教社杯全国大学生数学建模竞赛题目
(请先阅读“全国大学生数学建模竞赛论文格式规范”)

A  葡萄酒的评价

确定葡萄酒质量时一般是通过聘请一批有资质的评酒员进行品评。每个评酒员在对葡萄酒进行品尝后对其分类指标打分,然后求和得到其总分,从而确定葡萄酒的质量。酿酒葡萄的好坏与所酿葡萄酒的质量有直接的关系,葡萄酒和酿酒葡萄检测的理化指标会在一定程度上反映葡萄酒和葡萄的质量。附件1给出了某一年份一些葡萄酒的评价结果,附件2和附件3分别给出了该年份这些葡萄酒的和酿酒葡萄的成分数据。请尝试建立数学模型讨论下列问题:
1. 分析附件1中两组评酒员的评价结果有无显著性差异,哪一组结果更可信?
2. 根据酿酒葡萄的理化指标和葡萄酒的质量对这些酿酒葡萄进行分级。
3. 分析酿酒葡萄与葡萄酒的理化指标之间的联系。
4.分析酿酒葡萄和葡萄酒的理化指标对葡萄酒质量的影响,并论证能否用葡萄和葡萄酒的理化指标来评价葡萄酒的质量?
                                                     
附件1葡萄酒品尝评分表(含4个表格)
附件2葡萄和葡萄酒的理化指标(含2个表格)
附件3葡萄和葡萄酒的芳香物质(含4个表格)


Google+有一个秘密武器(译)

Google Plus has a secret weapon -- hangout
你现在正在使用Google+吗?如果你正在用,那么究竟在她的哪一部分功能呢?
Are you on Google Plus? If you are, are you actually using it?
其实,你应该去使用Googe+ -- 因为Google+提供了一个惊人的秘密武器.
You should be – because Google Plus offers users an amazing secret weapon.
一年多以前,Google发布了她的社交网络.但是这个社交网络并没有获得快速的增长,现在Google+好像正走着一条像其他失败的社交媒体衰败的路子,像iTunes的Ping,废弃已久的MySpace和长期被遗忘的Friendster.
##ReadMore##
A little more than a year ago, Google launched its version of a social network. But the network did not gain quick acceptance, and now it seems like it might be going the way of other failed social media ventures like iTunes’ Ping, the long-abandoned MySpace, and the long-forgotten Friendster.
但是我们应当希望Google+不会走远,因为她可能提供了最好的社交功能 -- Hangout.
But we should all hope Google Plus sticks around, because it offers perhaps the best feature of any social network – the Hangout.

如果你对Google+不熟悉,那么告诉你Hangout是Google+中视频聊天的工具.这是一个Facebook和Twitter都没有提供的独一无二的功能.我发现Hangout就像Skype和Facetime一样容易使用,而且视频质量也可以相提并论.
If you’re not familiar, the Hangout is Google Plus’s tool for video chatting. It’s a unique feature that more prominent social networks like Facebook and Twitter don’t offer.
I’ve found that a Hangout is just as easy to use as Skype or Facetime, with comparable video quality.
但是Hangout甚至比那些服务要更好一点,因为她让添加不同成员到视频群聊中变的容易.在过去,只有通过付费才能享受到类似的视频服务.
But the Hangout is an even better tool than those services, because it offers the additional benefit of easily adding multiple people to a call. In the past, that kind of video-conferencing is something you could only get through pay services.
这对于那些远距离并需要使用视频会议服务,又没有预算的工作来说是一个大大的方便.加上最近更新的功能使得Hangout在Google+ iPhone应用上更加容易使用.这个应用显示了和你谈话的人(还有你自己),同时允许你切换查看其它用户.
This is a huge benefit to businesses that work from a distance and need to use video conferencing services, but don’t have a budget to pay for them. Plus, a recent update made the Hangout feature  easier to use through Google Plus’s iPhone app. The app shows you video of who’s talking (as well as of you), while allowing you to toggle to see other users.
因为应用程序一次只显示一个视频流,我发现它比台式机版本提供了更好的视频质量。事实上,我已经到了那样的地步,即使我坐在电脑旁边也会用手机端的应用视频聊天.
Because the app is only showing one video stream at a time, I’ve found that it provides better video quality than the desktop version. In fact, I’ve gotten to the point where I use the app for Hangouts even when my desktop is sitting right beside me.
此外,您还可以使用数据网络来视频群聊,不只是在WiFi的时候。有好几次,当我已经迟到的时候,我就使用应用在汽车上听会议内容。(当然,我在驾驶的时候不看着手机屏幕 )。
Plus, you can use the Hangout feature on data networks, not just on WiFi. A couple of times, when I’ve been running late for a meeting by Hangout, I’ve used the app in the car to listen in while driving. (Of course, I didn’t watch the screen while behind the wheel – but the video was available had I had a chauffeur.)
Google+在iPad应用上甚至提供了更多Hangout功能,并在Android应用程序中能显示另外的用户。我还没有尝试过,但有兴趣想知道视频质量如何。
Google Plus offers even more Hangout functionality in its iPad app and in its Android app by showing additional users. I haven’t tried these but would be interested to hear how well the video quality holds up.
所有版本的应用都是免费的.
All versions of the app are free.
Google+正向社会名人,运动员,乐队和更多的人提供Hangout来推广视频群聊。此外,NFL的网站今年提供梦幻足球聚会的场所。像这样的活动提供了一个伟大的方式来尝试视频群聊功能,来看看你有多喜欢它。
Google Plus is using Hangouts to promote the network by offering hangouts with celebrities, athletes, bands, and more. Plus, the NFL’s website offered fantasy football drafts by hangout this year. Events like these are a great way to try out the Hangout feature to see just how much you’ll like it.

像建立Google+一样容易 ---- 如果你有一个Gmail地址,只需要点击一两下 ---- 没有理由不加入,如果仅仅是为了有机会的视频群聊的。
然后你就可以让Google+成为你自己的秘密武器。

As easy as it is to set up Google Plus – if you have a Gmail address, it takes just a click or two – there’s no reason not to join up, if only to have access to the Hangouts.
Then you can make Google Plus’s secret weapon your own.
文Via:http://www.worthwhile.com/blog/google-plus-has-a-secret-weapon/

Perl语言介绍-动态语言程序设计1

动态语言程序设计
Perl语言属于脚本语言,同属于脚本语言的还有PHP,Python,ASP,JSP.而脚本语言具有以下几个特点:
  1. 解释型语言,需要解析器和虚拟机
  2. 动态数据,不需要数据类型的声明
  3. 不需要编译
  4. 调用库往往是源码
脚本语言也具有以下的优点:
  1. 功能强大
  2. 容易学习
  3. 容易使用
  4. 开放源代码
  5. 跨平台
汇编语言(Assembly Language)一行代码只能生成一行机器码,一行系统语言(System Programming Languages)代码能生成3~7行机器码,而脚本语言(Scripting Languages)一行代码能够生成成百上千行的机器码.因此脚本语言的效率是最高的.
这幅图横轴表示代码量,纵轴表示一行代码能够解释的底层语句数.
下面举例:
Perl
open(F, $filename);
 $m = join(“”, );
 @m = split(/\s+/, $m);
Python
F = open(filename, ‘r’)
n = F.read().split()
例子2
open(File,"");
while($Line=){
 chomp($Line);
 ($Word,$Trans)=split("=>",$Line);
 $hashDict{$Word}=$Trans; 
}
close(File);
print "Pls Input word:\n";
$ForSearch=);
if ( defined $hashDict{$ForSearch} ){
  print "$hashDict{$ForSearch}\n";
}else{
  print "$ForSearch is not in the dict!\n";
}
脚本语言的应用
软件产品
设计->数据准备->编程实现->软件测试->系统维护->...
软件开发编程=系统语言+脚本语言
国外热,国内冷

Perl(Practical Extraction and Report Language )
  1. Larry Wall于1987年,为文本处理编写。
  2. 结合了C,sh, awk和sed的有点。
  3. 开放源代码,免费下载安装程序。
  4. 解释性的脚本语言
  5. Perl不是GUI程序。
Perl的优点
  1. 出色卓越的处理文本能力。
  2. 特别适合于CGI编程
  3. 跨平台的编程语言,window,linux…
  4. 自主内存管理,没有内存泄漏问题。
  5. 强大便捷的模块化功能。
系统下载
ActivePerl for Windows  http://www.activeperl.com

Perl作用
文本数据的加工处理
  • 文本信息抽取
  • 格式转换
  • 获取统计文本的统计信息
CGI编程
  • 处理用户交互的Form表格
  • 建立留言版
  • BBS
利用Perl扩展模块
  • 数据库编程
  • 网络编程
  • 利用MS的Com组件
Perl相关程序
ActivePerl
PerlWiz
  • 开发Perl的集成环境
Perl2exe
  • 把perl转换成exe程序
PerlEz
  • 在C中调用Perl

十款可视化MySQL管理工具(转)


下面为您介绍的MySQL管理工具是十款功能各异的可视化MySQL管理工具,如果您对此方面感兴趣的话,不妨一看,相信对您会有所帮助。

使用各种精心设计的工具来管理MySQL数据库要比单纯使用传统的方法轻松得的多。开发人员应该不断寻找那些能够缩短开发时间的工具。这也是我们本文整理这10个能够简化开发过程的MySQL管理工具具的原因。

一、MySQL Workbench

MySQL Workbench是一个由MySQL开发的跨平台、可视化MySQL管理工具。它作为DBDesigner4工程的替代应用程序而备受瞩目。MySQL Workbench可以作为windows、linux和OS X系统上的原始GUI工具,它有各种不同的版本,你可以查看下面的链接以获得它的版本信息。
##ReadMore##

二、phpMyAdmin

phpMyAdmin是一款免费的、用PHP编写的MySQL管理工具工具,用于在万维网上管理MySQL,它支持MySQL的大部分功能。这款含有用户界面的软件能够支持一些最常用的操作(比如管理数据库、表格、字段、联系、索引、用户、许可,等等),同时你还可以直接执行任何SQL语句。

三、Aqua Data Studio

对于数据库管理人员、软件开发人员以及业务分析师来说,Aqua Data Studio是一个完整的集成开发环境(IDE)。它主要具备了四个方面的功能:1)数据库查询和管理工具;2)一套数据库、源代码管理以及文件系统的比较工具;3)为Subversion(SVN)和CVS而设计了一个完整的集成源代码管理客户端;4)提供了一个的数据库建模工具(modeler),它和最好的独立数据库图表工具一样强大。

四、SQLyog

SQLyog是一个全面的MySQL管理工具(/’GUI’/'Frontend’)。 它的社区版(Community Edition)是具有GPL许可的免费开源软件。这款工具包含了开发人员在使用MySQL时所需的绝大部分功能:查询结果集合、查询分析器、服务器消息、表格数据、表格信息,以及查询历史,它们都以标签的形式显示在界面上,开发人员只要点击鼠标即可。此外,它还可以方便地创建视图和存储过程,最近几周笔者一直在反复使用这个功能。


五、MySQL-Front

这个MySQL数据库的图形GUI是一个“真正的”应用程序,它提供的用户界面比用PHP和HTML建立起来的系统更加精确。因为不会因为重载HTML网页而导致延时,所以它的响应是即时的。如果供应商允许的话,你可以让MySQL-Front直接与数据库进行工作。如果不行,你也只需要在发布网站上安装一个小的脚本即可。登录信息会存储在你的硬盘上,因此你不必再登录到不同的网络界面上了。

六、mytop

mytop是一款基于控制台的MySQL管理工具工具(不是GUI),用于监视线程以及MySQL 3.22.x、3.23.x和4.x服务器的整体性能。它可以在大多数安装了Perl、DBI以及 Term::ReadKey的Unix系统上(包括Mac系统OS X)运行。如果你安装了Term::ANSIColor,你能得到彩色的视图。如果你安装了Time::HiRes,你还可以得到一个不错的 “每秒查询数” 实时统计。mytop0.7版甚至还能在windows上运行。

mytop的灵感来自系统监视工具“top”。我经常在Linux、FreeBSD和Solaris上使用top,你很可能会在mytop中注意到来自这些操作系统的某些特性。mytop连接到MySQL服务器之后,能定期运行SHOW PROCESSLIST和SHOW STATUS命令,并以一种有用的格式总结从这些命令中所获得的信息。

七、Sequel Pro

Sequel Pro是一款管理MAC OSX数据库的应用程序,它可以让你直接访问本地以及远程服务器上的MySQL数据库,并且支持从流行的文件格式中导入和导出数据,其中包括SQL、CSV 和XML等文件。最初,Sequel Pro只是开源CocoaMySQL工程的一个分支。部分特性如下:

>你很容易就可以建立起一个到Mac电脑本地MySQL服务器的连接

>它具有全部的表格管理功能,包括索引。

>支持MySQL视图

>它使用多窗口功能,能够立即支持多个数据库或表格

八、SQL Buddy

SQL Buddy是一个强大的轻量级Ajax数据库管理工具。它非常易于安装,你只需要把文件夹解压到服务器里就行了,这再简单不过了!你还可以进行常见的绝大部分操作。

九、MySQL Sidu

MySQL Sidu是一款免费的MySQL客户端,它通过网络浏览器来运行,非常容易上手!Sidu这几个字母表示Select(选择)、Insert(插入)、Delete(删除)和Update(更新)。Sidu其实还有更多的功能,它看起来更像MySQL前端软件的GUI而不是网页。

>SIDU支持SQL选择、插入、删除,更新功能。

>SIDU支持在浏览器上工作,如Firefox、IE、Opera、Safari、Chrome等等。

>SIDU看起来像MySQL前端软件的GUI而不是网页。

>SIDU可以跟MySQL、Postgres 和SQLite DBs一起工作。

十、Navicat Lite MySQL Admin Tool

Navicat是一款快速、可靠的数据库管理工具,很受大家的欢迎。Navicat专门用来简化数据库管理并且减少管理成本,它旨在满足数据库管理人员、数据库开发人员以及广大中小企业的需要,它有一个很直观的GUI,可以让你安全便捷的创建、组织、访问以及分享信息。

对于MySQL来说,Navicat工具是一个强大的数据库管理和开发工具。它可以跟任何版本的MySQL数据库服务器(3.21版或者以上版本)一起工作,并且支持MySQL大多数最新的功能,包括Trigger、Stored Procedure、Function、Event, View和 Manage User等。Navicat Lite可以免费下载,但是仅适用于非商业活动。

Via:51CTO


Tomcat安装与配置

Tomcat是由Apache软件基金会下属的Jakarta项目开发的一个Servlet容器,按照Sun Microsystems提供的技术规范,实现了对Servlet和JavaServer Page(JSP)的支持,并提供了作为Web服务器的一些特有功能,如Tomcat管理和控制平台、安全域管理和Tomcat阀等。由于Tomcat本身也内含了一个HTTP服务器,它也可以被视作一个单独的Web服务器。但是,不能将 Tomcat 和 Apache Web 服务器混淆,Apache Web Server 是一个用 C 语言实现的 HTTP web server;这两个 HTTP web server 不是捆绑在一起的。Apache Tomcat 包含了一个配置管理工具,也可以通过编辑 XML 格式的配置文件来进行配置。[来源:维基]
##ReadMore##
准备工作:
Tomcat下载:http://tomcat.apache.org/
Jdk(Java Development Kit):http://www.oracle.com/technetwork/java/javase/downloads/index.html

如果电脑上已经安装JRE(Java Runtime Environment)Java运行时环境,只需要安装不带JRE的JDK即可.

Tomcat安装具体步骤:

1.安装JDK和JRE

2.设置JDK相关的环境变量

1).切换到桌面,右键点击“我的电脑” -> 属性 -> 高级 ->  建立一个 JAVA_HOME 环境变量,变量值为JDK的根目录。
2).和上面一样的操作,建立 环境变量 CLASSPATH,值为 “.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\jre\lib\rt.jar
3).还是操作环境变量但不是新建,而是编辑。编辑 Path 变量,最变量值最后面加上 ;%JAVA_HOME%\bin;

3.安装Tomcat

1).一直下一步,中间需要选择安装路径和 JVM 目录,如果JDK和JRE安装没问题,这里他应该能自动找得到,否则需要你手动指定一下。 中间什么也不用管,有一部让你设置端口,不用动,保持默认的就行了。
2).新增一个 CATALINA_HOME 环境变量,变量值为你TOMCAT安装时的根目录。

3.测试运行服务器
访问http://localhost:8080,如果看到tomcat的欢迎页面的话说明安装成功了。 
进入Tomcat 下的 bin目录,你可以发现两个可执行文件,分别是 tomcat6.exe(外挂形式启动) tomcat6w.exe(当成服务启动) ,推荐使用 tomcat6.exe 来启动,如果你会DOS的话,最好开一个DOS窗口去运行 tomcat6.exe,这样如果出错了则能及时的看到错误提示。 需要注意的是如果启动失败最大的可能就是服务已经启动了,你需要在DOS下运行 “net stop tomcat6”先关闭服务。

4.编写程序测试下Tomcat环境是否能运行

进下Tomcat下的 webapps 目录,新建一个自己的目录,例如 test。
进入test
1).新建文件 index.jsp
2).新建目录WEB-INF
3).进入WEB-INF目录新建文件 web.xml
index.jsp 文件代码:

<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>我的第一个JSP页面。</title>
</head>
<body>
Hello world! <br>
<%
String name = "meiking";
out.println(name);
%>
</body>
</html>


web.xml 文件代码:


index.jsp



5.启动 tomcat 后运行刚刚的程序
http://localhost:8080/test


Tomcat下JSP、Servlet和JavaBean环境的配置

在Java,Tomcat环境都没问题的情况下



Tomcat版本差异


想知道Tomcat各个版本有什么差异,查看Tomcat的官方文挡changelog.html就知道了。对tomcat7.0来说,查看http://tomcat.apache.org/tomcat-7.0-doc/changelog.html 就一清二楚了。

跟版本的区别主要反映在两个方面:
1.Tomcat本身的技术演进,包括性能的不断提高,功能的增加增强,甚至于重构
2.因为Tomcat本身是块Servlet容器的试验田,所以他的版本是跟Servlet和JSP的规范一起发展的。
##ReadMore##

下面粗略介绍一下: 各大版本查看
Tomcat 3.x
tomcat 的初始正式版本是3.x,(v3.1.1、v3.2.4、v3.3),完全遵循ASF(Apache Software Foundation)规范,支持Servlet2.2和JSP1.1
该版本已经能能够连接IIS、Netscape Web Server,并支持war包形式发布应用。他最大的问题就是存在安全问题,并因此停止发布。

Tomcat 4.x
鉴于Tomcat 3.x的种种不足和致命的安全问题,Tomcat 4.x 对整个项目进行了重新架构,并且遵循新的servlet2.3、jsp1.2规范的支持并同时向下兼容Servlet2.2和JSP1.1 。重新架构的组件使用ant来设置任务来构建;开始支持与IDE的集成;连接器使用新的Cycote Connector连接器;基于管理的JMX;支持struts;还有就是一大堆的性能和内存使用效率的提高,几乎每版都声明有这样的好处……

Tomcat 5.x
Tomcat 5.x 基于Tomcat 3.x,Tomcat 4.x,遵循新的servlet2.4、jsp2.0规范。他最大的特点就是支持JDK5.0。Tomcat 5.x 是个总结、改进版本,因为有了3.x,4.x作基础,加上使用JDK5.0,使Tomcat在性能上有了突飞猛进的发展,备受大家欢迎。

Tomcat 6.x
Tomcat 6.x是目前的最新版本了。遵循新的servlet2.5、jsp2.1。该版本增加了很多新特性。主要有:高级的IO功能:采用APR或NIO HTTP连接进行异步IO操作
组件功能:可以使用ant -f extras.xml的方式为tomcat添加新的组件。
另外一个我感觉变化很大的是Tomcat 6.x目录发生了很的变化,lib 目录都集中到一起放在跟目录下,jar包也简洁多了

Tomcat 7.x

总结:Tomcat 各版本之间,一方面版本号是跟着servlet、jsp规范同步演进的,另一方面,软件在架构设计和功能、性能方面都是与时俱进,不断丰富和提高.

数字图像处理10.2

第十章分割02 作业
满分为39分
学号:
姓名:
成绩:

一.判断题(T表示正确,F表示错误。每题1分)
1.数字图像分割只能采用自上而下的分裂方法。(F)

二.单项选择题(每题2分)

三.多项选择题(每题3分)
1.数字图像中的不连续性(Discontinuities)包括(ABC)。
A.边缘
B.线
C .点
D.区域
2.根据灰度变化的特点,常见的边缘可分为(ABC)。
A.阶跃型
B.屋脊型
C.斜坡型
D.平面型
3.可以用于边缘检测的一阶算子(ABC)。
A. Roberts算子
B. Prewitt算子
C. Sobel算子
D. Laplacian-Gauss算子
4.具有高斯平滑功能的边缘检测算子是(BD)。
A. Roberts算子
B. Canny算子
C. Sobel算子
D. Laplacian-Gauss算子
5. Canny边缘检测算子的3个准则是(ABC)。
A.低错误率
B.定位精度
C.单边响应
D.速度快
6.将数字图像分割为区域,可以采用的特性包括(ABC)
A.灰度
B.颜色
C.纹理
D.噪声
7.将灰度相关的值作为区域生长准则,区域生长可分为(ACD)。
A.像素与像素
B.像素与区域
C .区域与区域
D.区域与像素

四.填空题(每题2分)

五.简答题(每题4分)

六.论述题(每题6分)
1.基于区域的数字图像分割方法包括哪些,各有什么特点。

(1)区域生长方法
以一组生长点(单个像素,某个小区域)开始,搜索其邻域,比较相邻区域与生长点特征的相似性,若它们足够相似,则作为同一区域合并,形成新的生长点。以此方式将特征相似区域不断合并、直到不能合并为止,最后形成特征不同的各区域。
根据生长对象,区域生长可分为三种:生长像素与种子像素、生长像素与种子区域、生长区域与种子区域。
(2)区域分裂与合并方法
在开始时将图像分割成一系列任意不相交的区域,然后将他们进行合并得到感兴趣区域。最常用的方法是四叉树分解法。


2.基于边缘的数字图像分割方法包括哪些,各有什么特点。

包括边缘检测、边缘连接、轮廓填充和区域提取四个步骤。
边缘检测方法包括:
(1)基于一阶导数的边缘检测方法,对噪声很敏感,边缘点很冗余。
(2)基于一阶导数的边缘检测方法,对噪声很敏感,边缘点丢失很多。
(3)基于高斯平滑与二阶导数的边缘检测方法,边缘点提取的较好。
(4)基于Canny算子的边缘检测方法,因为采用非最大化抑制,效果很好。
边缘连接可以采用四连通和八连通。
轮廓填充可以采用递归方法、基于栈的深度优先的迭代方法、基于队列的宽度优先的迭代方法和序列方法等。


七.计算题(每题5分)


九.编程题(每空2分)

数字图像处理10.1


第十章分割01 作业
满分为20分
学号:
姓名:
成绩:

一.判断题(T表示正确,F表示错误。每题1分)
1.阈值化数字图像的阈值只能有一个。(F)
2.数字图像阈值化(thresholding)是可以采用查表(table-up)来实现。(T)
3.数字图像阈值化后需要区域标记才能获取区域。(T)
4.在数字图像中,区域边界分为内边界和外边界。(T)

二.单项选择题(每题2分)

三.多项选择题(每题3分)


四.填空题(每题2分)
1.优化方法求取数字图像阈值是依据  最小化平均分类误差    。
2. Otsu方法求取数字图像阈值是依据  最大化类间方差    。

五.简答题(每题4分)

六.论述题(每题6分)
1.从数字图像中求取阈值方法有哪些,各有什么特点。
(1)迭代式求取阈值方法,以阈值不再变化为迭代终止条件。
(2)优化求取阈值方法,最小化平均分类误差。
(3)Ostu求取阈值方法,最大化类间方差。
(4)动态(自适应)求取阈值方法,将数字图像分割为适合采用Ostu求取阈值方法的子图像。

2.在数字图像阈值化后,对区域进行标记的方法有哪些,各有什么特点。
(1)递归方法,属于深度优先方法,需要很大的内存空间。
(2)基于栈的深度优先的迭代方法。
(3)基于队列的宽度优先的迭代方法,相对深度优先方法,需要较小的内存空间。
(4)序列方法,需要初始标记、标记传递和矛盾标记消除等步骤,算法较为复杂,但内存空间需要较小。
(5)组合区域标记和区域轮廓提取的方法,能够同时进行区域标记和区域轮廓提取。


七.计算题(每题5分)

八.算法题(每题5分)

九.编程题(每空2分)

数字图像处理9

第九章复原作业
满分为39分
学号:
姓名:
成绩:

一.判断题(T表示正确,F表示错误。每题1分)
1.评估数字图像复原效果没有客观标准(F)。
2.数字图像复原与数字图像增强都是主观过程(F)。
3.数字图像退化原因决定数字图像复原方法(T)。
4.复原有噪声数字图像无需知道噪声和信号任何信息(F)。
5.数字图像增强效果常采用信噪比来评估。(F)
6.对数字图像进行维纳滤波时需要已知信号和噪声的功率谱。(T)

二.单项选择题(每题2分)
1.对于高斯和均匀随机分布这类噪声有最好的效果(D)。
A.中值滤波器
B.最大值滤波器
C.最小值滤波器
D.修正阿尔法均值滤波器

三.多项选择题(每题3分)
1.适合于处理脉冲噪声(CD)。
A.算术均值滤波器
B.几何均值滤波器
C.谐波均值滤波器
D.逆谐波均值滤波器
2.适合处理高斯或均匀等随机噪声(BC)。
A.算术均值滤波器
B.几何均值滤波器
C.谐波均值滤波器
D.逆谐波均值滤波器
3.针对数字图像周期性噪声,可以采用的频率域处理方法包括(AC)。
A.带阻滤波器
B.低通滤波器
C.陷波阻滤波器
D.高通滤波器
4.对数字图像进行有约束最小而乘滤波时需要已知噪声的(CD)。
A.最小值
B.最大值
C.均值
D.方差
5.数字图像存在盐噪声、椒噪声、脉冲噪声,依次应采用的滤波器是(ABD)。
A.最小值minimum滤波器
B.最大值maximum滤波器
C.均值mean滤波器
D.中值median滤波器
6.在数字图像模糊复原方法中,逆滤波、维纳滤波、约束最小二乘法滤波依次对应(DAB)。
A.最小化理想数字图像与复原数字图像之间的平均平方差
B.引入拉普拉斯算子
C.最大值
D.放大噪声

四.填空题(每题2分)
1.约束还原法也称之为  维纳滤波。

五.简答题(每题4分)

六.论述题(每题6分)
1.数字图像复原与数字图像增强的相似与相异之处有哪些?
数字图像复原和数字图像增强都是为了改善图像视觉效果和质量,都可以采用空间域和变换域的方法。
数字图像复原是为了复原原始图像、希望获得最优估值,而数字图像增强则是为了突出某些信息。
数字图像复原是一个客观过程,根据退化原因建立退化模型,通过逆处理来实现;而数字图像增强则是一个主观过程,不需要知道图像降质原因。
对数字图像复原的评估是客观的,而对数字图像增强的评估则是主观的。


七.计算题(每题5分)

八.算法题(每题5分)
1.请给出对有噪声数字图像进行自适应中值滤波的完整步骤。
输入:
待处理图像,空白图像
区域最大尺寸Smax
自适应中值滤波:
步骤1,自上而下、从左到右在输入数字图像每个像素上移动滤波器。
步骤2,对待处理像素计算A1 = Zmed - Zmin; A2 = Zmed - Zmax。
步骤3,如果A1>0并且A2<0,则转到步骤5;否则,增大窗口尺寸。如果窗口尺寸<= Smax,则返回步骤2;否则,输出Zmed,即空白图像相应位置像素值置为Zmed,取出下一个像素,返回步骤1。
步骤5,计算B1 = Zxy - Zmin; B2 = Zxy - Zmax。
步骤6,如果B1>0并且B2<0,则输出Zxy,即空白图像相应位置像素值置为Zxy;否则,输出Zmed,即空白图像相应位置像素值置为Zmed。取出下一个像素,返回步骤2。
Sxy是区域
Smax是指最大容忍区域
Zmed是Sxy的中值
Zmax是Sxy的最大值
Zmin是Sxy的最小值


九.编程题(每空2分)

数字图像处理8

第八章退化作业
满分为24分
学号:
姓名:
成绩:

一.判断题(T表示正确,F表示错误。每题1分)
1.高斯噪声是数字图像退化的一个原因(T)。
2.数字图像组成可分解为加法模型和乘法模型,它们能够相互转换。(T)
3.数字图像进行数字化时可能产生噪音。(T)
4.斑点对应数字图像组成分解的加法模型。(F)
5.数字图像中斑点与空间相关。(T)
6.数字图像退化根源只有噪音和模糊。(F)

二.单项选择题(每题2分)

三.多项选择题(每题3分)
1.数字图像退化原因包括(ABCD)。
A.摄像机未聚焦
B.物体与摄像设备之间的相对移动
C.随机大气湍流
D.成像光源或射线的散射
2.常见噪声包括(ABCD)。
A.高斯噪声
B.指数分布噪声
C.均匀分布噪声
D.脉冲噪声
3.将所获取数字图像分解为理想组成成分和噪音组成成分,它们之间的关系包括(AC)。
A.加法
B.减法
C.乘法
D.除法
4.数字图像退化中的模糊包括(ABCD)。
A.线性运动模糊
B.均匀散焦模糊
C.大气湍流模糊
D.旋转模糊

四.填空题(每题2分)
1.白噪声是指频谱密度为 常数 ,且与数字图像不相关。
2.高斯噪声源于电子电路噪声和由低照明度或高温带来的 传感器   噪声。
3.在脉冲噪声中,负脉冲以 黑点 (胡椒点)出现,  正脉冲  以白点(盐点)出现。

五.简答题(每题4分)

六.论述题(每题6分)

七.计算题(每题5分)

八.算法题(每题5分)

九.编程题(每空2分)

数字图像处理7.5

第七章增强作业05
满分为29分
学号:
姓名:
成绩:

一.判断题(T表示正确,F表示错误。每题1分)
1.为了消除模糊,突出边缘,实现图像的锐化,可以采用的方法是低通滤波。(F)
2.彩色数字图像不能进行基于频率域的增强处理。(F)
3.数字图像频率域处理中只能采用离散二维傅里叶变换。(F)
4.带通滤波器Band pass filters是高通滤波器high pass filters和低通滤波器low pass filters的组合。(T)

二.单项选择题(每题2分)
1.具有明显振铃,数字图像边缘模糊不清(A)。
A.理想高通滤波器
B. Butterworth高通滤波器
C.指数高通滤波器
D.梯形高通滤波器

三.多项选择题(每题3分)
1.用于数字图像模糊的低通滤波器包括(ABCD)。
A.高斯低通滤波器
B. Butterworth低通滤波器
C.指数低通滤波器
D.梯形低通滤波器
2.用于数字图像锐化的高通滤波器包括(ABCD)。
A.高斯高通滤波器
B. Butterworth低通滤波器
C.指数高通滤波器
D.梯形高通滤波器


四.填空题(每题2分)

五.简答题(每题4分)

六.论述题(每题6分)
1.实现数字图像模糊的方法有哪些?
1.(1)空间域方法,均值滤波、高斯滤波等。
(2)变换域方法,低通滤波方法,例如,Butterworth低通滤波器、指数低通滤波器、梯形低通滤波器、高斯滤波等。

2.实现数字图像锐化的方法有哪些?
1)空间域方法,基于导数的非锐化、高增滤波等。导数包括一阶导数和二阶导数,一阶导数包括Roberts算子、Prewitt算子、Sobel算子,二阶导数包括Laplacian算子。
(2)变换域方法,高通滤波方法,例如,Butterworth高通滤波器、指数高通滤波器、梯形高通滤波器。


七.计算题(每题5分)

八.算法题(每题5分)
1.给出对数字图像进行频率域光顺处理的步骤。
八.
1.对数字图像进行离散变换处理,获得频率域(变换域)的数据,该数据具有多种频率,代表不同重要程度,低频表示整体信息、高频表示细节信息。
在变换域,采用低通滤波方法,例如,Butterworth低通滤波器、指数低通滤波器、梯形低通滤波器、高斯滤波等。
对低通滤波处理后的频率域数据进行相应的逆离散变换,从而获得光顺的数字图像。


九.编程题(每空2分)

数字图像处理7.4

第七章增强作业04
满分为40分
学号:
姓名:
成绩:

一.判断题(T表示正确,F表示错误。每题1分)
1.数字图像的一阶导数与斜率对应。(T)
2.数字图像的二阶导数与过零点对应。(T)
3.数字图像空间域处理中非锐化Unsharp masking滤波是高增High-boost滤波的推广。(F)
4.彩色数字图像锐化处理需要考虑颜色模型。(T)

二.单项选择题(每题2分)
1.数字图像进行一阶导数运算时,滤波矩阵系数之和是(B)。
A.大于0
B.等于0
C.小于0
D.等于1
2.数字图像进行二阶导数运算时,滤波矩阵系数之和是(B)。
A.大于0
B.等于0
C.小于0
D.等于1
3.基于二阶导数对数字图像进行锐化处理时,滤波矩阵系数之和是(D)。
A.大于0
B.等于0
C.小于0
D.等于1

三.多项选择题(每题3分)
1.在数字图像中,像素之间距离包括(ABC)。
A.欧拉距离euclidean distance
B.城区距离city-block distance
C.棋盘距离chessboard distance
D.没有距离null distance
2.数字图像进行Laplacian运算时,参入的像素包括(AB)。
A. 4邻域
B. 8邻域
C.全邻域
D.无邻域
3.可以用于数字图像Laplacian运算的有(AB)。
A.
B.
C.
D.
4.可以用于数字图像锐化运算的有(AD)。
A.
0
-1
0
-1
5
-1
0
-1
0
B.
0
-1
0
-1
4
-1
0
-1
0
C.
-1
-1
-1
-1
8
-1
-1
-1
-1
D.
-1
-1
-1
-1
9
-1
-1
-1
-1


四.填空题(每题2分)
1.在数学上,数字图像锐化处理相当于数字图像被  微分。

五.简答题(每题4分)

六.论述题(每题6分)
1.在对数字图像进行一阶导数运算时,Roberts滤波、Prewitt滤波,Sobel滤波的联系和区别各是什么?
1.
联系:Roberts滤波、Prewitt滤波、Sobel滤波都是用于强化数字图像细节,提供边缘锐化的数字图像。
区别:Roberts滤波采用对角交叉来计算一阶导数,而Prewitt滤波、Sobel滤波则是采用邻接行、列来计算一阶导数。
Prewitt滤波平等对待邻接行、列的像素,而Sobel滤波则是邻接行、列中远近不同像素赋予不同的权值,具有较好的平滑预处理功能。


七.计算题(每题5分)

八.算法题(每题5分)
1.给出对数字图像进行非锐化蒙版Unsharp mask处理的步骤。
1.
(1)获得待处理数字图像的模糊数字图像。
(2)对待处理数字图像及其模糊数字图像进行减法运算,获得边缘锐化的蒙版数字图像
(3)将待处理数字图像与蒙版数字图像进行加权处理,从而获得锐化数字图像。

2.基于对数字图像进行锐化处理,请给出处理算法的伪代码描述。
输入:
待处理数字图像II
待处理数字图像的蒙版数字图像M
输出:
锐化的数字图像Ish,与输入图像II具有同样的宽度和高度
For y form 0 to H-1
{
For x form 0 to W-1
{
       If(dII(x,y)>=Tc)
{
       gray = II.GetPixel(x, y)+a M(x,y)

}
Else
{
       gray = II.GetPixel(x, y)
}
Ish.SetPixel(x, y, int(sum*1.0/( R*R)))
}
}


九.编程题(每空2分)

数字图像处理7.3

一.判断题(T表示正确,F表示错误。每题1分)
1.在数字图像中,一个像素的邻域只有包括8领域(F)。
2.在空间域基于滤波器处理数字图像时,二维滤波器可以分解为多个一维滤波器,以提高计算效率(T)。
3.彩色数字图像平滑处理无需考虑颜色模型。(F)

二.单项选择题(每题2分)
1.能够实现数字图像平滑的处理方法(C)。
A.线性点处理
B.基于直方图的处理
C.邻域处理
D.非线性点处理
2.最大值滤波器,可用于检测数字图像中的像素点是(A)。
A.最亮
B.最暗
C.中间亮度
D.平均亮度
3.最小值滤波器,可用于检测数字图像中的像素点是(B)。
A.最亮
B.最暗
C.中间亮度
D.平均亮度
4.下列排序算法中,性能最好的是(D)。
A.冒泡排序bubble sort
B.比较排序selection sort
C.插入排序insertion sort
D.快速排序quick sort
5.阿拉法裁剪均值滤波器a-trimmed mean filter是(D)。
A.中值median滤波器
B.均值mean滤波器
C.排序rank滤波器
D.混合hybrid滤波器

三.多项选择题(每题3分)
1.在数字图像中,基于邻域处理的滤波器包括(ABCD)。
A.可以是十字、方形等形状
B.可以是3 X 3、5 X 5等不同尺寸
C.可以有不同的权值
D.可以采用中心为原点

四.填空题(每题2分)
1.若操作是在像素的某个邻域内进行的,即输出数字图像的像素值由对应的输入数字图像的像素值及其    领域像素值     决定,则称其为邻域操作。
2.在数学上,数字图像模糊处理相当于数字图像被平均或被 积分 。

五.简答题(每题4分)
1.在空间域进行数字图像排序滤波有哪些?各有什么特点?
1.排序滤波包括:中值滤波、中值滤波的线性组合、中值滤波的高阶组合、加权的中值滤波、迭代的中值滤波、最大值滤波、最小值滤波、中点值滤波。
中值滤波,适合处理脉冲噪声,脉冲噪音长度要小于滤波器宽度的一半。
中值滤波的线性组合,取多个中值滤波器结果的线性加权值。
中值滤波的高阶组合,取多个中值滤波器结果的最大值。
加权的中值滤波,对像素值进行加权后再做中值滤波。
迭代的中值滤波,对数字图像进行多次中值滤波。
最大值滤波,用于提取最亮的像素。
最小值滤波,用于提取最暗的像素。
中点值滤波,用于提取最亮和最暗像素的平均值
六.论述题(每题6分)


八.算法题(每题5分)
1.给出用于数字图像平滑的均值滤波mean filter的算法描述,采用伪代码。
输入:
待处理图像II
均值滤波器的半径R
输出图像IO,与输入图像II具有同样的宽度和高度
For y form R to H-1-R
{
For x form R to W-1-R
{
       Sum=0
For v form -R to R
{
For u form -R to R
{
       sum = sum + IA.GetPixel(x+u, y+v)
}
}
       IO.SetPixel(x, y, int(sum*1.0/( R*R)))
}
}

1.给出用于数字图像平滑的加权中值滤波weighted median filter的算法描述,采用伪代码。
2.
输入:
待处理图像II
加权中值滤波器的半径R
加权中值滤波器的系数矩阵Mask
输出图像IO,与输入图像II具有同样的宽度和高度
For y form R to H-1-R
{
For x form R to W-1-R
{
For v form -R to R
{
For u form -R to R
{
       gray = IA.GetPixel(x+u, y+v)
       For r from 0 to Mask(u+R, v+R)
       {
              list.add(gray)      
}
}
}
list.sort();
       IO.SetPixel(x, y, int(list.Get(list.GetSize()/2))
}
}

数字图像处理7.2

第七章增强作业02
满分为21分
学号:
姓名:
成绩:

一.判断题(T表示正确,F表示错误。每题1分)
1.数字图像的累积直方图Cumulative histogram是以直方图为输入的。(T)
2.数字图像的直方图均衡化equalization就是以累积分布函数作为变换函数来修正直方图的。(T)
3.数字图像的直方图均衡化equalization可以借助直方图规定化specification来实现。(F)
4.数字图像经过直方图均衡化equalization只能生成具有一种形状直方图的图像。(T)

二.单项选择题(每题2分)
1.数字图像与直方图之间的映射关系是(C)。
A.多对多
B.一对一
C.多对一
D.一对多
2.经过直方图均衡化equalization的数字图像,灰度级出现概率(D)。
A.相同
B.不相同
C.不变
D.近似

三.多项选择题(每题3分)
1.直方图能够体现数字图像的信息包括(ABCD)。
A.曝光度的过与欠
B.动态范围的高低
C.对比度的高低
D.强度分布
2.数字图像直方图规定化specification可以输入(ABCD)。
A.参考的数字图像
B.参考的直方图
C.参考的直方图函数
D.参考的直方图曲线

四.填空题(每题2分)
1.数字图像的直方图对应的数据结构是数组  。

五.简答题(每题4分)

六.论述题(每题6分)

七.计算题(每题5分)

八.算法题(每题5分)
1.用伪代码表示数字图像匹配Matching算法。
输入:
待处理数字图像IA的直方图hA
参考数字图像IR的直方图hR,与hA有同样的元素个数
设K为hA的元素个数
设PA为hA的累积分布函数
设PR为hR的累积分布函数
创建元素个数为K的列表fhs
For a form 0 to K-1
{
j = K-1
{
    fhs[a]=j
j=j-1
}while (j>0 and PA(a) <= PR(j))
}
输入图像IA
输出图像IO,与输入图像IA具有同样的宽度和高度
For y form 0 to H-1
{
For x form 0 to W-1
{
       Gray = IA.GetPixel(x, y)
       IO.SetPixel(x, y, fhs[Gray])
}
}


九.编程题(每空2分)

数字图像处理6

第六章变换域作业
满分为38分
学号:
姓名:
成绩:

一.判断题(T表示正确,F表示错误。每题1分)
1.离散二维小波变换在时域和频域都是局部的。( T)
2.短时间离散二维傅里叶变换在时域和频域是局部化的。(T)
3.小波包变换是小波变换的线性组合。(T)

二.单项选择题(每题2分)
1. 2D离散变换快速算法的基础是(D)。
A.旋转不变性
B.周期性
C.对称性
D.可分离性
2.快速傅里叶变换计算复杂度是(C)。
A. O(n2)
B. O(n)
C. O(nlogn)
D. O(logn)
3. FFT变换核是(A)。
A.复数
B.实数
C.整数
D.浮点数
4. JPEG 2000数字图像标准采用的变换是(B)。
A.离散余弦变换
B.离散小波变换
C.离散正弦变换
D.离散傅里叶变换

三.多项选择题(每题3分)
1.数字图象函数可以表示为(ABCD)。
A.频率域
B.空间域
C.表面
D.亮度
2.数字图像的2D离散变换的作用有(ABCD)。
A.特征提取
B.减少维度
C.图像编码
D.除去噪音
3.基于正弦波曲线的离散变换方法包括(AC)。
A.离散余弦变换
B.离散小波变换
C.离散傅里叶变换
D.离散Harr变换

四.填空题(每题2分)
1.任意波形可分解为不同幅值、不同频率  的 正弦 波的加权和。
2.在数字图像变换域中,能量将集中到低频  成分。
3.傅里叶变换是一种数学变换(正交变换),可以把信号(或函数)分解成不同 幅度 的具有不同 频率 的正弦和余弦信号(或函数)。
4.如果对信号的高频分量不再分解,而对低频分量进行连续分解,便可得到信号不同分辨率下的低频分量,这称之为信号的  多分辨率分析。

五.简答题(每题4分)
1.基于变换域的数字图像处理方法的步骤是什么?
先将数字图像从空间域正变换到变换域(频率域),然后在变换域进行各种处理,最后从变换域反变换到空间域,获得处理后的数字图像。

六.论述题(每题6分)
1.数字图像变换域实现方法包括哪些,各自的优缺点是什么?
二维离散傅立叶变换,采用复数做变换核,余弦和正弦是非正交的,变换后数据是复数。
二维离散余弦变换,采用余弦做变换核,用于JPEG图像压缩。
哈达玛变换,采用+1和-1做变换矩阵的系数,变换矩阵能够按照规律生成。
二维离散小波变换,包括哈尔小波、Daub小波,是正交的,对数字图像可以进行多分辨率分析。用于JPEG2000图像压缩。
二维离散小波包变换,是小波变换的线性组合。

七.计算题(每题5分)

八.算法题(每题5分)

九.编程题(每空2分)

数字图像处理3

第三章颜色作业
满分为47分
学号:
姓名:
成绩:

一.判断题(T表示正确,F表示错误。每题1分)
1.灰度数字图像能够转化为彩色数字图像。(T)

二.单项选择题(每题2分)
1.人眼中锥形细胞对下列光敏感度依次提高的是(A)。
A.红绿蓝
B.红蓝绿
C.蓝绿红
D.绿蓝红
2.属于加法颜色模型的是(A)。
A. RGB
B. HSV
C. CMY
D. Lab
3.属于减法颜色模型的是(C)。
A. RGB
B. HSV
C. CMY
D. Lab
4.电视机的颜色模型是(A)。
A. RGB
B. HSV
C. YUV
D. Lab
5.可以用于彩色比较的颜色模型是(C)。
A. RGB
B. CMY
C. Lab
D. YUV

三.多项选择题(每题3分)
1.模拟电视信号传输的颜色模型是(BC)。
A. RGB
B. YUV
C. YIQ
D. YCbCr
2.色域依次变大的颜色模型是(DBCA)。
A. CIE Lab
B. sRGB
C. AdobeRGB
D. CMYK
3.包含强度信息的有(AD)。
A. YIQ中的Y
B. HSI中的H
C. Lab中的H
D. HSV中的V
4.灰度图像转化为彩色图像的方法包括(AB)。
A.切片方法Intensity slicing and color coding
B.变换方法Intensity to Color Transformations
C.加权方法
D.均值方法
5.电视信号传输颜色模型的共同点在于(AB)。
A.强度与色彩分离
B.色彩采用差值
C.色彩采用和值
D.色彩采用乘值

四.填空题(每题2分)

五.简答题(每题4分)
1.彩色数字图像转化为灰度表示,有哪些方法?至少使用四种颜色模型。
(1)基于RGB颜色模型的通道选择方法,将某个颜色通道值作为亮度,将彩色图像变换为灰度图像。
(2)基于RGB颜色模型的通道组合方法,将两、三个颜色通道值的平均值作为亮度,将彩色图像变换为灰度图像。
(3)基于RGB颜色模型的通道加权方法,对三个颜色通道值分别进行加权,所获得值作为亮度,将彩色图像变换为灰度图像。
(4)基于RGB颜色模型的通道排序方法,对三个颜色通道值进行大小排序,所获得最大值、最小值、中间值中的一个作为亮度,将彩色图像变换为灰度图像。
(5)基于CMYK颜色模型的方法,以K为亮度,将彩色图像变换为灰度图像。
(6)基于HSI颜色模型的方法,以I为亮度,将彩色图像变换为灰度图像。
(7)基于HSV颜色模型的方法,以V为亮度,将彩色图像变换为灰度图像。
(8)基于HSB颜色模型的方法,以B为亮度,将彩色图像变换为灰度图像。
(9)基于YUV颜色模型的方法,以Y为亮度,将彩色图像变换为灰度图像。
(10)基于YIQ颜色模型的方法,以Y为亮度,将彩色图像变换为灰度图像。
(11)基于YCbCr颜色模型的方法,以Y为亮度,将彩色图像变换为灰度图像。
(12)基于Lab颜色模型的方法,以L为亮度,将彩色图像变换为灰度图像。

六.论述题(每题6分)
1.比较RGB、YCbCr、HSI、Lab四种颜色模型的区别和联系。
(1)从使用环境看,RGB用于电视机、显示器等显示设备、YCbCr用于数字电视传输、HSI用于绘画、设计、Lab用于颜色比较。
(2)从数据相关度看,RGB三个强度通道组合来表达色调、亮度等信息,而YCbCr、HSI、Lab则是将亮度和色调信息进行分离。YCbCr、Lab中色调信息采用色差来表示,HSI则是采用色调H、饱和度S来表示。
联系:
(1)四种颜色模型都是用来描述彩色数字图像。
(2)四种颜色模型可以直接、间接相互转换的。

七.计算题(每题5分)

八.算法题(每题5分)
1.给出彩色数字图像Mosaic效果的算法描述,并进行简单说明。
输入:待处理的数字图像,马赛克的宽度和高度
输出:具有马赛克效果的数字图像,与输入数字图像具有同样的宽度和高度
处理:
遍历每个马赛克块
•          For nY = 0 … ImageOut.Height-1, Step=nMosaicHeight
–         For nX = 0 … ImageOut.Widht-1, Step = nMosaicWidth
•          获取马赛克块最左上点像素值
•          Pixel = ImageIn.GetPixel(nX, nY)
•          将该值赋给该马赛克块中每个像素
•          For nV = nY … nY + nMosaicHeight, Step=1
–         For nU = nX … nX + nMosaicWidth, Step=1
»         ImageOut.SetPixel(nU, nV, Pixel )
–         End for nU
•          End for nV
–         End for nX
•          End for nY

九.编程题(每题6分,每空2分)
1.
CMainFrame* pFrame=(CMainFrame *)(AfxGetApp()->m_pMainWnd);
CTestView* pView=(CTestView*)pFrame->MDIGetActive()->GetActiveView();
CTestDoc* pDoc=    GetDocument(); (1)
    ->SendMessage(WM_COMMAND,ID_FILE_NEW); (2)
CTestView* pViewNew=(CTestView*)pFrame->MDIGetActive()->GetActiveView();
CTestDoc* pDocNew=pViewNew-> GetDocument();
    m_ImageOne.Create(pDoc->m_ImageOne.GetWidth(),Doc->m_ImageOne.GetHeight(),24); (3)
(1)pView->
(2)pFrame
(3)pDocNew->

数字图像处理2

第二章数字化作业
满分为74分
学号:
姓名:
成绩:

一.判断题(T表示正确,F表示错误。每题1分)
1.白色太阳光只能被分解为7种有色光。(F)
2.人眼可见光只是电磁谱的很小一个部分。(T)
3.电磁谱的波长和频率成正比。(F)
4.人眼用视网膜上杆状细胞辨别色彩。(F)
5.不可见光可以成像。(T)
6.数字图像的空间分辨率与物理尺寸直接对应。(F)

二.单项选择题(每题2分)
1.与热量对应的成像是(A)。
A.红外线
B. Computed Tomography
C. X-ray
D.超声波
2.适用于孕妇胎儿成像的是(C)。
A. X-ray
B. Nuclear Magnetic Resonance Imaging
C.超声波
D. Computed Tomography
3.需要平移和旋转才能成像的感光器是(A)。
A.单个
B.线性
C.矩阵
D.随机
4.能够用于三维成像的感光器是(C)。
A.单个
B.线性
C.矩阵
D.随机
5.在彩色成像中,利用不同光具有不同穿透力的方法是(B)。
A. Tri-filter方法
B. Fovean方法
C. Bayer方法
D.没有

三.多项选择题(每题3分)
1.数码相机的成像部件是(AB)。
A. CCD
B. CMOS
C.胶片
D.纸张
2.数码相机可以是(ABC)。
A.单反相机
B.立体相机
C.胶片相机
D.红外相机
3.能够实现三维成像的是(AB)。
A. Computed Tomography
B. Nuclear Magnetic Resonance Imaging
C.超声波
D.红外线
4.图像数字化的步骤是(ABCD)。
A.空间采样
B.时间采样
C.量化
D.压缩
5.成像时感光器排列方式包括(ABC)。
A.单个
B.线性
C.矩阵
D.随机
6.属于数字图像的文件格式包括(ABD)。
A. TIFF
B. EXIF
C. SVG
D. PNG
7.属于矢量图形的文件格式包括(ACD)。
A. DXF
B. EXIF
C. AI
D. WMF
8.属于混合光栅图像和矢量图形的文件格式包括(BC)。
A. DXF
B. PSD
C. PDF
D. EXIF

四.填空题(每题2分)
1.图像数字化时采样决定 空间 分辨率。
2.图像数字化时量化决定   强度分辨率。

五.简答题(每题4分)
1.数字图像的表示方法包括哪些?各自用处是什么?
强度矩形方法,用于可视化数字图像。
数据矩阵方法,用于表示数字图像所对应的数据。
表面模型方法,用于显示数字图像所对应的表面可视化。
频率域方法,用于表示数字图像在不同频率的数据。

六.论述题(每题6分)
1.相机有小孔模型和透镜两种,它们的区别和联系各是什么。
(1)小孔相机需要很小的孔,透镜相机需要透镜。
(2)小孔相机简单,透镜相机复杂。
(3)小孔相机因小孔很小而需要很长曝光时间,透镜相机因透镜对称和很薄,无需长时间曝光。
联系
(1)小孔相机和透镜相机都可以用来成像。

七.计算题(每题5分)
1. Exercise 2.1. Determine the actual physical measurement in millimeters of an image with 1400 rectangular pixels and a resolution of 72 dpi.
1400 / 72 / 72 x 25.4 x 25.4=174mm
2. Exercise 2.2. A camera with a focal length of / = 50 mm is used to take a photo of a vertical column that is 12 m high and is 95 m away from the camera. Determine its height in the image in mm (a) and the number of pixels (b) assuming the camera has a resolution of 4000 dots
per inch (dpi).
12 / 95 x 50 = 6.3 mm
6.3 / 25.4 x 4000 = 992 pixels

3. Exercise 2.5. Determine the number of bytes necessary to store an uncompressed binary image of size 4000 x 3000 pixels.
4000 x 3000 / 8 = 1500000 bytes
4. Exercise 2.6. Determine the number of bytes necessary to store an uncompressed RGB color image of size 640 x 480 pixels using 8, 10, 12, and 14 bits per color channel.
640 x 480 x  8 x 3 / 8= 921600
640 x 480 x 10 x 3 / 8 = 1152000
640 x 480 x 12 x 3 / 8 = 1382400
640 x 480 x 14 x 3 / 8 = 1612800

八.算法题(共2题,每题5分,共10分)

九.编程题(每题6分)

数字图像处理4

第四章代数作业
满分为42分
学号:
姓名:
成绩:
一.判断题(T表示正确,F表示错误。每题1分)
1.数字图像代数运算只能在左上点对齐。(F)
2.数字图像代数运算(加减乘除)只能用于相等尺寸的数字图像。(F)
3.数字图像不能与常数进行代数运算(加减乘除)。(F)
4.数字图像加法运算只能输入两个数字图像。(F)
5.数字图像平均运算只能用于图像合成。(F)
6.矩阵乘法和数组乘法是相同的。(F)
7.逻辑运算(与或非)不能用于灰度和彩色数字图像。(F)
8.数字图像负片只能用非运算实现。(F)

二.单项选择题(每题2分)
1.能够减少数字图像噪声(A)。
A.加法运算
B.减法运算
C.乘法运算
D.除法运算
2.数字图像最大值运算可以用于获得(A)。
A.亮点
B.暗点
C.平均值点
D.最小值点
3.数字图像最小值运算可以用于获得(B)。
A.亮点
B.暗点
C.平均值点
D.最大值点

三.多项选择题(每题3分)
1.数字图像加法运算可能产生越界像素值,对象素和的处理方法包括(AB)。
A.拉伸处理
B.折半处理
C.减法处理
D.不处理
2.数字图像减法运算可能产生越界像素值,对象素差的处理方法包括(ABD)。
A.截断处理
B.折半并平移处理
C.加法处理
D.拉伸处理
3.数字图像减法运算能够实现(ACD)。
A.医学上的数字减影
B.校正背景照明
C.运动检测
D.缺陷检测
4.数字图像乘法运算可能产生越界像素值,对象素值的处理方法包括(AB)。
A.除法处理
B.拉伸处理
C.不处理
D.任意处理
5.数字图像除法运算可能产生越界像素值,对象素商的处理方法包括(ABC)。
A.除数为0时进行加1并乘法处理
B.拉伸处理
C.除数为0时不处理
D.任意处理
6.数字图像负片生成算法包括(ABD)。
A.减法运算
B.逻辑非运算
C.乘法运算
D.补集运算
7.能够实现数字图像信息叠加的算术操作包括(AB)。
A.加法运算
B.逻辑或运算
C.乘法运算
D.补集运算
8.能够实现数字图像对象移除的算术操作包括(BD)。
A.逻辑与运算
B.减法运算
C.除法运算
D.差集运算

四.填空题(每题2分)
1.数字图像处理乘法运算可以用于去除区域,去除区域像素值设为  0  。
2.数字图像Alpha混合(blending)采用的是 加权 。

五.简答题(每题4分)

六.论述题(每题6分)

七.计算题(每题5分)

八.算法题(每题5分)

九.编程题(每空2分)

数字图像处理1

第一章绪论作业
满分为34分
学号:
姓名:
成绩:

一.判断题(T表示正确,F表示错误。每题1分)
1.同数字视频相比,数字图像具有的特点是静态。(T)
2.只有人眼可视的才可以成像。(F)
3.计算机图形与数字图像是不能相互转换的。(F)

二.单项选择题(每题2分)
1.可以直接用于处理数字图像的软件是(A)。
A. Adobe Photoshop CS5
B. Mathwork Matlab 2010b
C. Microsoft Visual Studio 2010
D. Intel OpenCV 2.0
2.能够从文本数字图像中识别出计算机文本的软件是(B)。
A. Adobe Photoshop CS5
B. Microsoft Office 2003 Document Imaging
C. Adobe Acrobat Reader 10
D. Microsoft Office 2003 Picture Manager

三.多项选择题(每题3分)
1.数字图像处理研究内容包括(ABCD)。
A.获取
B.压缩
C.增强
D.复原
2.在Adobe Photoshop CS5中,有助于查看图像的工具箱中工具包括(AB)。
A. Zoom Tool缩放工具
B. Hand Tool抓手工具
C. Navigator导航器
D. Scroll Bar滚动条
3. Microsoft Visual Studio 2005中CImage支持的文件格式有(ABCD)。
A. JPEG
B. GIF
C. BMP
D. PNG

四.填空题(每题2分)
1.数字图像是  像素的矩阵。

五.简答题(每题4分)
1.数字图像处理包含哪三个层次?各自的任务是什么?
数字图像处理包含低级、中级和高级三个层次,也可以分别说是处理、分析和理解。
低级数字图像处理包括代数运算、几何操作、对比度调整、平滑、锐化、退化、复原等,是实现从数字图像到数字图像的基本处理任务。
中级数字图像处理是指从像素矩阵中进行对象的提取、描述和分类,属于语法层面任务处理。
高级数字图像处理是指根据获得的对象及其之间关系进行整体上的判断、分析和理解,属于语义层面任务处理。

2.举例说明数字图像处理的实际应用。
数字图像算术运算,用于实现合成效果。
数字图像几何操作,用于实现像素位置的变换。
数字图像对比度调整,用于修改曝光问题。
数字图像平滑处理,用于生成模糊效果。
数字图像锐化处理,用于增强图像边缘。
数字图像退化处理,用于生成特殊效果。
数字图像复原处理,用于得到未退化的效果。
数字图像分割处理,用于提取其中的感兴趣区域。
列举四个即可。

六.论述题(每题6分)
1.数字图像处理与多媒体技术、计算机图形学、数字视频处理、计算机动画、计算机游戏的区别和联系是什么,举例说明。
1.
区别
(1)从组成元素及其组织方法看,
数字图像是像素矩阵,
多媒体是数字图像、数字音频、数字视频、计算机图形和计算机动画等的集合,
计算机图形是数学定义的几何对象的列表、树或图,
数字视频是相关数字图像的列表,
计算机动画是相关数字图像的列表,
计算机游戏是数字图像、数字音频、数字视频、计算机图形和计算机动画等与用户交互的集合。
(2)从获取生成方式看,
数字图像主要是由数码拍摄、扫描获取,
多媒体中,数字图像主要是由数码拍摄、扫描获取,数字音频主要是由数码录音获取,数字视频主要是由数码拍摄获取,计算机图形主要是计算机软件生成,计算机动画主要是计算机软件生成,
计算机图形主要是由计算机软件生成,
数字视频主要是由数码拍摄获取,
计算机动画主要是由计算机软件生成,
计算机游戏主要是由计算机软件生成。
(3)从表现内容看
数字图像表达绘画、照片等色调丰富内容,
计算机图形表达图案、图形、模型等以线条、几何为主内容,
多媒体表达数字图像、数字音频、数字视频、计算机图形和计算机动画等,
数字视频表达自然的动态内容,
计算机动画主要表达计算机生成的动态内容,
计算机游戏主要表达计算机生成、需要用户交互的内容。
(4)从实现的功能看
数字图像处理旨在改善静态的视觉效果、生成静态的特殊效果、识别所含的静态内容等,
计算机图形学旨在生成各种几何对象,进行各种几何变换等,
多媒体技术旨在进行多种可视可听媒体的集成、处理和交互等,
数字视频处理旨在改善动态的视觉效果、生成特殊的动态效果、识别所含的动态内容等,
计算机动画旨在利用计算机生成各种对象的动态信息,
计算机游戏旨在利用计算机生成各种对象的交互信息。
联系:
(1)
数字图像与计算机图形可以相互转换,计算机图形转换为数字图像容易,但数字图像转换为
计算机图形困难。
从静态的数字图像、计算机图形难以直接转换为动态的数字视频、计算机动画。从动态的数字视频、计算机动画易于直接转换为静态的数字图像。
多媒体包括数字图像、数字视频、计算机图形和计算机动画等可视媒体,还包括数字音频等可听媒体。
数字视频、计算机动画最终都是相关数字图像的列表。
计算机游戏不仅包括数字图像、数字视频、计算机图形、计算机动画和数字音频等可视可听媒体,更为主要的是包括与用户的交互。

七.计算题(每题5分)

八.算法题(共2题,每题5分,共10分)

九.编程题(每题6分)
1.在一个MFC应用程序中,采用Doc\View框架来打开数字图像,主要步骤包括哪些?
(1)建立MFC类型的应用程序,选择具有滚动条的用户视图类。
(2)在用户文档对象中,声明数字图像对象。
(3)在用户文档对象中,重载文件打开函数,读取数字图像文件数据。
(4)在用户视图对象中,在初始化函数中,根据数字图像的宽度和高度设置显示窗口的宽度和高度。
(5)在用户视图对象中,在绘制函数中,显示数字图像。

Quote Of The Day