生活编程(二) 图像裁剪批处理

来源:互联网 发布:cisco路由器查看端口 编辑:程序博客网 时间:2024/04/30 01:03

     今天下载彩色版的书后发现全部都是图片,而且两页都在同一面,浏览的时候太麻烦了,虽然有黑白的pdf(歪歪斜斜),最后用编程解决问题。尊重版权,请买正版书(这本书太老了)。

                   

    (好久没写博客,发现csdn改进了图片插入的功能。大小显示及位置调整。)

    发现个规律,图片中间刚好是书的中间,那么只要把图片切成两半即可。用Matlab即可实现。

function x = diy()filelist = dir('*.jpg');  filenumber = length(filelist);  j = 1;for i = 1:filenumber    imagename = filelist(i).name;      temp = imread(imagename);      %name = strrep(imagename,'.jpg','');    temp = imresize(temp,[1200,1550]);      [ihight,ilength] = size(temp);    %对RGB三层进行处理    for k = 1:3        first = temp(:,:,k);        imagea = first(1:ihight,1:round(ilength/6));        imageb = first(1:ihight,round(ilength/6):ilength/3);        left(:,:,k)  = imagea;          right(:,:,k) = imageb;      end    imwrite(left,[num2str(j) '.jpg']);    %j递增  用于命名   j = j + 1;   %数字转字符  不是 char() 是num2str() 字符串拼接为[a b]      num2str imwrite(right,[num2str(j),'.jpg']);    j = j + 1;    end

剪切后的文件名命名为 从1开始递增。但是与之前这些的文件混在一起,用个正则表达式简单过删掉原始文件即可。           

                      

import java.io.File;import java.util.regex.Matcher;import java.util.regex.Pattern;/** * @author iaiti * use regex to delete some files  */public class FilterFile {    public static void main(String[] args) {        String path = "F:/kai";        File myfile = new File(path);        for(File filein : myfile.listFiles()){            Pattern pattern = Pattern.compile("[0-9]*.jpg");            Matcher matcher = pattern.matcher(filein.getName());            System.out.println(filein.getName()+" file match number name is "+matcher.matches());            if(matcher.matches() == false){                filein.delete();            }         }    }}

成功对半劈开。

                 


方便阅读。有书还是买书吧。


      不尝试解决问题的程序员不是好的开发者。

0 0
原创粉丝点击