2019-10-21 14:45:13 hongfei568718926 阅读数 58
  • 量化分析师的Python日记

    您观看课程学习后 免费入群领取【超全Python资料包+17本学习电子书】 量化分析师的Python学习教程,课程先从介绍Python本身一些基本语法,再介绍 python 相关应用及在数据分析及处理领域几大利器:pandas、scipy、numpy、sklearn、matplotlb。

    9827 人正在学习 去看看 CSDN讲师

1.该图像识别方法,

(1)获取整个图片的所有rgb数量存储在list中

(2)统计每个list中R,g,b,各个在每个list中存储值对应的数量,存储到map中,存储中key的大小是乱序的,需要重新排序,(按照key的大小由小到大)

(3)把map中的特征图进行处理,对获取的map进行微分图像处理,形成更有特征的图像数据,提取特征数据存储数据库,形成了该图像的特征数据.

(4)识别图像与数据库中的数据进行比对,找到对应的数据.

2,看看类

MainDemo

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;
import java.io.*;
import java.awt.image.*;
import javax.imageio.ImageIO;
import java.text.SimpleDateFormat;
import org.jfree.chart.ChartPanel;
public class MainDemo implements ActionListener {
	JFrame frame=null;
	JLabel label=new JLabel();//用于显示图片
	JLabel dealLabel=new JLabel();//用于显示处理后的图片
	BufferedImage bi=null;//用于存储临时打开的图片流
	//定义用于存储图片的数据,先获取r,g,b各个的数据,
	//然后再每个数据内查找指定r,g,b,出现的次数(0-255)出现的次数
	ArrayList<Integer> rList=new ArrayList<Integer>();
	ArrayList<Integer> gList=new ArrayList<Integer>();
	ArrayList<Integer> bList=new ArrayList<Integer>();
	//用于存储各个数据对应的值
	LinkedHashMap<Integer,Integer> rMap=new LinkedHashMap<Integer,Integer>();
	LinkedHashMap<Integer,Integer> gMap=new LinkedHashMap<Integer,Integer>();
	LinkedHashMap<Integer,Integer> bMap=new LinkedHashMap<Integer,Integer>();
	//用于返回进行处理后的数据,存储的对应的键和值
	LinkedHashMap<Integer,Integer> dealRMap=new LinkedHashMap<Integer,Integer>();
	LinkedHashMap<Integer,Integer> dealGMap=new LinkedHashMap<Integer,Integer>();
	LinkedHashMap<Integer,Integer> dealBMap=new LinkedHashMap<Integer,Integer>();

	private JPanel CenterJP=null;
	private File f =null;

	public void init(){
		JButton openFile=new JButton("打开文件");
		JButton DealPhoto1=new JButton("RGB绘图显示");
		JButton DealPhoto3=new JButton("显示处理");
		JButton DealPhoto2=new JButton("数据入库");
		
		openFile.addActionListener(this);
		DealPhoto1.addActionListener(this);
		DealPhoto2.addActionListener(this);
		DealPhoto3.addActionListener(this);

		frame=new JFrame();
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setSize(900,1000);
		frame.setLayout(new BorderLayout());
		//操作数据按钮
		JPanel OpearJP=new JPanel(new FlowLayout(FlowLayout.LEFT));
		frame.add(OpearJP,BorderLayout.NORTH);
		OpearJP.setBorder(BorderFactory.createTitledBorder("操作"));
		OpearJP.setPreferredSize(new Dimension(900,50));
		OpearJP.add(DealPhoto1);
		OpearJP.add(DealPhoto3);
		OpearJP.add(DealPhoto2);
		//用于显示图片的主面板
		JPanel ShowJP=new JPanel(new BorderLayout());
		ShowJP.setBorder(BorderFactory.createTitledBorder("显示"));
		ShowJP.setPreferredSize(new Dimension(900,950));
		frame.add(ShowJP,BorderLayout.CENTER);
		//用于显示打开一个文件的操作
		JPanel NorthJP=new JPanel(new FlowLayout(FlowLayout.LEFT));
		ShowJP.add(NorthJP,BorderLayout.NORTH);
		NorthJP.setPreferredSize(new Dimension(900,50));
		NorthJP.add(openFile);//打开一个文件
		//用于显示被操作对象的和绘制的结果图片
		CenterJP=new JPanel(new GridLayout(2,2,10,10));
		CenterJP.setPreferredSize(new Dimension(900,900));
		ShowJP.add(CenterJP,BorderLayout.CENTER);
		//加入初始图片
		//CenterJP.add(label);
	
		frame.setVisible(true);
	}
	//实现按钮监听事件
	public void actionPerformed(ActionEvent e){
		String ButtonName=e.getActionCommand();
		if(ButtonName.equals("打开文件")){
			CenterJP.removeAll();
			//CenterJP.repaint();
			System.out.println("打开文件:");
			//每次打开文件夹后清除一下存储
			rList.clear();
			gList.clear();
			bList.clear();
			rMap.clear();
			gMap.clear();
			bMap.clear();
			dealRMap.clear();
			dealGMap.clear();
			dealBMap.clear();
			openFile();//打开文件
			CenterJP.add(label);
			CenterJP.updateUI();//更新组件不然不显示;
			

		}else if(ButtonName.equals("RGB绘图显示")){
			System.out.println("RGB绘制显示");
			OpearDeal1(bi);//处理图片获取绘制图片的数据
			//把map中的数据绘制出来,显示在JPanel上
			System.out.println("开始绘制rgb的图形");
			String flag="r";
			ChartPanel rPanel=(new CountDeal()).getPanel(rMap,flag);
			CenterJP.add(rPanel);
			System.out.println("r绘制完成");
			flag="g";
			ChartPanel gPanel=(new CountDeal()).getPanel(gMap,flag);
			CenterJP.add(gPanel);
			System.out.println("g绘制完成");
			flag="b";
			ChartPanel bPanel=(new CountDeal()).getPanel(bMap,flag);
			CenterJP.add(bPanel);
			System.out.println("b绘制完成");
			CenterJP.updateUI();
			//对采集的数据进行绘制

		}else if(ButtonName.equals("显示处理")){
			System.out.println("显示处理");
			dealRMap=new DealInsertMap().dealShowMap(rMap);
			dealGMap=(new DealInsertMap()).dealShowMap(gMap);
			dealBMap=(new DealInsertMap()).dealShowMap(bMap);

			String flag="r";
			ChartPanel rPanel=(new CountDeal()).getPanel(dealRMap,flag);
			CenterJP.add(rPanel);
			System.out.println("r绘制完成");
			flag="g";
			ChartPanel gPanel=(new CountDeal()).getPanel(dealGMap,flag);
			CenterJP.add(gPanel);
			System.out.println("g绘制完成");
			flag="b";
			ChartPanel bPanel=(new CountDeal()).getPanel(dealBMap,flag);
			CenterJP.add(bPanel);
			System.out.println("b绘制完成");
			CenterJP.updateUI();

			
		}else if(ButtonName.equals("数据入库")){
			//int flag=400;//用于设置阈值
			System.out.println("数据入库");
			//获取当前文件的名称;
			String names=f.getName();
			String name=names.substring(0,names.lastIndexOf('.'));
			System.out.println(name);
			//(new SqlDate(name)).insertDate(rMap,gMap,bMap);
			//(new SqlDate(name)).insertRGBDate(dealRMap,dealGMap,dealBMap);			

		}
	}
	//打开文件夹操作
	public void openFile(){
		JFileChooser chooser=new JFileChooser();
		chooser.showOpenDialog(frame);//在某个容器上打开一个文件选择器
		f = chooser.getSelectedFile();
		//String FilePath=f.getAbsolutePath();
		//文件是否存在或者是否选择
		if(f == null) {
			return;
		}
		try {
			bi = ImageIO.read(f);
			/*获取文件是否为图片,如果能够正常的获取到一张图片的宽高属性,
			那肯定这是一张图片,因为非图片文件是获取不到它的宽高属性的*/
			if(bi == null || bi.getHeight() <=0 || bi.getWidth() <=0){
				label.setText("您选择的不是一张图片,请从新选择!");
				return;
			} else {
				String path = f.getPath();
				System.out.println(path);
				ImageIcon image = new ImageIcon(path);
				label.setIcon(image);			//设置JLabel的显示图片
				//frame.pack();//使此窗口的大小适合其子组件的首选大小和布局。 
				//frame.validate();	//验证此容器及其所有子组件。 
			}
		} catch (IOException e) {
			//e.printStackTrace();
			return;
		}
	}
	//处理图片获取对应的RGB值并存储数据
	public void  OpearDeal1(BufferedImage bi){
		int w=bi.getWidth();
		int h=bi.getHeight();
		int[][] gray=new int[w][h];
		
		for(int x=0;x<w;x++){
			for(int y=0;y<h;y++){
				int pixel=bi.getRGB(x,y);
				int r=(int)(pixel&0xff0000)>>16;
				int g=(int)(pixel&0xff00)>>8;
				int b=(int)(pixel&0xff);
				if(r>=230&&g>=230&&b>=230){
				
				}else{
					rList.add(r);
					gList.add(g);
					bList.add(b);
				}
			}
		}
		System.out.println("数据存入成功");
		//然后对数据进行处理,存储到map中,
		rMap=new DealInsertMap().Deal(rList);
		gMap=new DealInsertMap().Deal(gList);
		bMap=new DealInsertMap().Deal(bList);
		/*Set<Integer> key=rMap.keySet();
		java.util.List<Integer> list=new ArrayList<>(key);
		for(int i=0;i<key.size();i++){
			System.out.println("键的数值为:"+rMap.get(list.get(i)));
		}*/

		System.out.println("map中分析完成");
	}
	public static void main(String[] args){
		(new MainDemo()).init();
	}
}

DealInsertMap

import java.util.*;

public class DealInsertMap{

	
	//用于处理采集的RGB数据
	public LinkedHashMap<Integer,Integer>  Deal(ArrayList<Integer> dealList){
		
		LinkedHashMap<Integer,Integer> dealMap=new LinkedHashMap<Integer,Integer>();
		for(int i=0;i<dealList.size();i++){
			int key=dealList.get(i);//返回指定的键
			//如果不在就创建一个,如果在指定键的值加1
			Set<Integer> mapSet=dealMap.keySet();//返回所有的键的集合
			//System.out.println("长度大小"+mapSet.size());
			if(mapSet.contains(key)){//如果包含该元素,取出加1
				int value=dealMap.get(key);
				value++;
				dealMap.put(key,value);
			}else{//如果不存在该元素,创建一个新的元素
				dealMap.put(key,1);
			}			
		}	
		//返回的key是乱序的,需要对该key进行重新排序
		LinkedHashMap<Integer,Integer> dealMaps=new LinkedHashMap<Integer,Integer>();
		Set<Integer> keys=dealMap.keySet();
		ArrayList<Integer> list=new  ArrayList<Integer>(keys);
		Collections.sort(list);//对list进行排序
		for(int i=0;i<list.size();i++){
			int value=dealMap.get(list.get(i));
			dealMaps.put(list.get(i),value);
		}
		/*for(Iterator<Integer> it=dealMaps.keySet().iterator();it.hasNext();){
			int key=it.next();
			System.out.println("key"+key+",value="+dealMaps.get(key));
		}*/
		System.out.println("list的长度为:"+dealList.size());
		System.out.println("map的长度为:"+dealMaps.size());
		return dealMaps;
	}
	/*public static void main(String[] args){
		LinkedHashMap<Integer,Integer> dealMap=new LinkedHashMap<Integer,Integer>();
		dealMap.put(1,10);
		dealMap.put(3,30);
		new DealInsertMap().dealShowMap(dealMap);
	}*/
	//用于对map中的数据进行微分化处理
	public LinkedHashMap<Integer,Integer> dealShowMap(LinkedHashMap<Integer,Integer> map){
		LinkedHashMap<Integer,Integer> dealMap=new LinkedHashMap<Integer,Integer>();
		Set<Integer> keys=map.keySet();
		ArrayList<Integer> listKey=new ArrayList<Integer>(keys);
		///Iterator<Integer> iterator=keys.iterator();
		for(int j=0;j<listKey.size();j++){

			int key=listKey.get(j);
			//System.out.println("键为:"+key);
			int value=map.get(key);
			if((j==0)||(j==listKey.size()-1)){//处理第一个和最后一个元素
				System.out.println("满足条件的可以"+key);
				if(j==0){
					dealMap.put(key,value);
				}
			}else{//找满足的差值,把满足的加入,同时
				int reValue=map.get(listKey.get(j-1));
				int laValue=map.get(listKey.get(j+1));
				if((value>(reValue+30))&&(value>(laValue+30))){
					dealMap.put(key,value);
					
					dealMap.put((listKey.get(j+1)),0);//把下一点设为0,并加入
					j++;//在移动一步
				}
			}
		}
		/*Set<Integer> keyss=dealMap.keySet();
		System.out.println("keys:"+keyss);
		Iterator<Integer> iterators=keyss.iterator();
		while(iterators.hasNext()){
			int keysss=iterators.next();
			System.out.println("key:"+keysss+",value+"+dealMap.get(keysss));
		}*/
		return dealMap;
	}	
}

CountDeal

import org.jfree.chart.ChartPanel;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;
import java.util.*;

public class CountDeal{

	public ChartPanel getPanel(LinkedHashMap<Integer,Integer> dealMap,String flag){
		String  chartTitle =null;
		String x="";
		String y="种类个数对于的数量";
		String name="";
		if(flag.equals("r")){
			chartTitle ="r的曲线";
			x="r存在的种类个数";
			name="r";
		}else if(flag.equals("g")){
			chartTitle="g的曲线";
			x="g存在的种类个数";
			name="g";
		}else if(flag.equals("b")){
			chartTitle="b的曲线";
			x="b存在的种类个数";
			name="b";
		}
		JFreeChart lineChart=ChartFactory.createLineChart(
			chartTitle,x,y,
			createDataset(dealMap,name),
			PlotOrientation.VERTICAL,
			true,true,false);
		ChartPanel chartPanel=new ChartPanel(lineChart);
		chartPanel.setPreferredSize(new java.awt.Dimension(400,400));
		return chartPanel;
	}
	//创建数据集
	private DefaultCategoryDataset createDataset(LinkedHashMap<Integer,Integer> dealMap,String name){
		 DefaultCategoryDataset dataset=new DefaultCategoryDataset();
		 Set<Integer> key=dealMap.keySet();
		 List<Integer> list=new ArrayList<>(key);
		 for(int i=0;i<key.size();i++){
			 dataset.addValue(dealMap.get(list.get(i)),name,list.get(i).toString());
			//if(dealMap.get(list.get(i))>100){
				//System.out.println("map的值:"+dealMap.get(list.get(i)));
			//}
		 }
		 return dataset;
	}


}

SqlDate

import java.sql.*;
import java.util.*;

public class SqlDate{

	private static String root="rootes";
	private static String password="123456";
	private static  String name="com.mysql.jdbc.Driver";
	private static String url="jdbc:mysql://192.168.65.99/test";
	private static Connection conn=null;
	private static Statement stat=null;
	private static String typename="";
	
	public SqlDate(String typename){
		this.typename=typename;
	}
	public static  Connection getConnection(){
		try{
			Class.forName(name);
			conn=DriverManager.getConnection(url,root,password);
		}catch(Exception  e){
			System.out.println("连接数据库失败");
			e.printStackTrace();
		}
		return conn;
	}
	/*public static void main(String[] args){
		LinkedHashMap<Integer,Integer> hash=new LinkedHashMap<Integer,Integer>();
		hash.put(1,10);
		hash.put(2,15);
		hash.put(3,50);
		hash.put(4,100);
		hash.put(5,20);
		hash.put(6,80);
		insertDate(hash,hash,hash);
	}
	public static  void insertRGBDate(LinkedHashMap<Integer,Integer> rMap,
		LinkedHashMap<Integer,Integer> gMap,LinkedHashMap<Integer,Integer> bMap){
		int countR=dealHashMap(rMap);
		int countG=dealHashMap(gMap);
		int countB=dealHashMap(bMap);
		//对获取的数据进行插入处理;
		try{
			conn=getConnection();
			stat=conn.createStatement();
			String sql="insert into tb_rgbcount(type,rcount,gcount,bcount)"+
				" values('"+typename+"',"+countR+","+countG+","+countB+")";
			stat.execute(sql);
			System.out.println("数据插入完成");
		}catch(Exception e){
			System.out.println("数据库连接失败");
			e.printStackTrace();
		}	
	}*/
	public static  void insertDate(LinkedHashMap<Integer,Integer> rMap,
		LinkedHashMap<Integer,Integer> gMap,LinkedHashMap<Integer,Integer> bMap){
		int countR=dealHashMap(rMap);
		int countG=dealHashMap(gMap);
		int countB=dealHashMap(bMap);
		//对获取的数据进行插入处理;
		try{
			conn=getConnection();
			stat=conn.createStatement();
			String sql="insert into tb_rgbcount(type,rcount,gcount,bcount)"+
				" values('"+typename+"',"+countR+","+countG+","+countB+")";
			stat.execute(sql);
			System.out.println("数据插入完成");
		}catch(Exception e){
			System.out.println("数据库连接失败");
			e.printStackTrace();
		}	
	}
	public static int dealHashMap(LinkedHashMap<Integer,Integer> rgbMap){
		int flag=0;
		int center=0;
		int count=0;
		Collection<Integer> c=rgbMap.values();
		Object[] obj=c.toArray();
		Arrays.sort(obj);//对获取的值内容进行由小到大排序
		center=((int)obj[0]+(int)obj[obj.length-1])/2;
		Set<Integer> keys=rgbMap.keySet();
		Iterator<Integer> iterator=keys.iterator();
		while(iterator.hasNext()){
			int key=iterator.next();
			int value=rgbMap.get(key);
			if(value>=center){
				count=count+(value-center);
			}
		}
		return count;
	}
}

以上思路只是部分,如果后期还做,会不断升化,这里的阈值在提取微分图像的时候,可以根据需求设置,形成不同的效果.

2018-11-18 23:32:33 u014134180 阅读数 2950
  • 量化分析师的Python日记

    您观看课程学习后 免费入群领取【超全Python资料包+17本学习电子书】 量化分析师的Python学习教程,课程先从介绍Python本身一些基本语法,再介绍 python 相关应用及在数据分析及处理领域几大利器:pandas、scipy、numpy、sklearn、matplotlb。

    9827 人正在学习 去看看 CSDN讲师

本书的目的

权衡:成本-性能-功耗

  • 新平台:个人移动设备和仓库级计算机
  • 新体系结构:多核和GPU

关于第五版

  • 两个极端:以移动电话和平板电脑到的个人移动设备PMD 为客户端,以提供云计算的仓库级计算机为服务器

  • 另一条主线:数据级并行DLP(许多数据项允许同时操作),任务级并行TLP(可以独立运行并很多程度上并行)

    • 指令级并行ILP
    • 向量体系结构和图像处理器GPU
    • 线程级并行
    • 仓库级计算机的需求级并行RLP
  • 本书附录:MIPS指令,存储器层级结构和流水线

  • 在线另9个附录

  • 融会贯通PIAT:ARM cortex A8, intel core i7, nvidia gtx-280/480 gpu , 还有Google仓库级计算机

主题的选择与组织

更为基础的计算机体系结构:《计算机组成与设计:硬件和软件接口》

内容概述

  • 封面二:能耗,静态功率,动态功率,集成电路成本,可靠性,可用性。
  • 第一章PIAT:SPECPower基准测试
  • 封面三:MIPS ISA,附录K 10种RISC体系结构、80x86、DEC VAX、IBM360/370
  • 第二章,对cache10种高级优化方法。虚拟机,便易提供保护和进行软硬件管理。SRAM,DRAM。
  • 第三章,高性能处理器指令级(单核)并行开发(超标量执行,分支预测,推理,动态调度,多线程),附录C,H
  • 第四章,向量、SIMD和GPU体系结构的(多核)数据级并行
  • 第五章,多核处理器,线程级并行(对称,分布式存储体系结构),附录F,I
  • 第六章,仓库级计算机(warehouse scale compute,WCS)设计,成本,性能
  • 附录A,指令集基本原理
  • 附录B,存储器层次
  • 附录C,流水线
  • 附录K,64位版本和其多媒体扩展(alpha,MIPS,PowerPC,SPARC),经典体系结构(80x86,VAX,IBM360/370),嵌入式指令集(ARM,Thumb,SuperH,MIPS16,Mitsubishi M32R),与附录H相关
  • 附录D,存储系统 RAID6
  • 附录E,嵌入式系统知识汇总
  • F,网络互联,
  • G,向量处理器
  • H,超长指令字VLIW和EPIC—— Itanium的体系结构
  • I,大规模共享存储多处理器
  • L,历史回顾与参考文献

Wu_Being博客声明:本人博客欢迎转载,请标明博客原文和原链接!谢谢!
《 〈计算机体系结构:量化研究方法〉5th 学习笔记》:
https://blog.csdn.net/u014134180/article/details/84206616

2019-03-11 16:26:17 rabbitbride 阅读数 1150
  • 量化分析师的Python日记

    您观看课程学习后 免费入群领取【超全Python资料包+17本学习电子书】 量化分析师的Python学习教程,课程先从介绍Python本身一些基本语法,再介绍 python 相关应用及在数据分析及处理领域几大利器:pandas、scipy、numpy、sklearn、matplotlb。

    9827 人正在学习 去看看 CSDN讲师

依据软件设计规格(SDS)用户说明书列明核心算法的名称、原理、用途和类型。核心算法包括后处理算法和人工智能算法,其中后处理算法通常会改变原始医学图像或数据,包括但不限于压缩、分割、配准融合、三维重建、量化分析和异常识别;人工智能算法通常基于数据库进行分析处理,包括但不限于模式识别、神经网络和专家系统。类型是指公认成熟算法(公开文献专利标准、原理简单明确、上市超过四年且无不良事件)或全新算法(源自科学研究和临床数据)。
核心算法提交材料的详尽程度取决于安全性级别和类型。当安全性级别为A级时,公认成熟算法可只列明名称,全新算法应描述原理和用途。当安全性级别为B级或C级时,公认成熟算法应描述原理和用途,全新算法除描述原理和用途外还应提供安全性与有效性的验证资料。
医疗器械软件实质首次注册应列明所有核心算法的名称、原理、用途和类型,实质重新注册应列明本版新增核心算法的名称、原理、用途和类型。

这篇文章目的是备注下医疗软件注册申报中其中的一个步骤:核心算法!好多软件只有业务流程,但这里一定要写算法,不能写无。。。不只要写,还要提供安全性与有效性的验证资料。就是说,医疗软件中一定要有算法,该算法一定要能提供相关材料,能证明算法是安全的,有效的。
注意,软件的测试报告能起到的作用极其有限。证明算法需要的是:

  1. 第三方权利机构证明;
  2. 已发表的论文;
  3. 已获得实审的专利;
  4. 临床验证数据对比;

而且,证明的过程要围绕安全性和有效性这两个因素。
Alt

软件设计规格:SDS Software Design Specification 软件设计规范

参考文献:
https://www.cmde.org.cn/CL0030/1882.html
https://www.cnblogs.com/winghawk/articles/1631161.html

2005-07-23 01:41:00 ramacess 阅读数 3676
  • 量化分析师的Python日记

    您观看课程学习后 免费入群领取【超全Python资料包+17本学习电子书】 量化分析师的Python学习教程,课程先从介绍Python本身一些基本语法,再介绍 python 相关应用及在数据分析及处理领域几大利器:pandas、scipy、numpy、sklearn、matplotlb。

    9827 人正在学习 去看看 CSDN讲师
 

怎样的评价才叫客观呢?量化,以及凭着良心说话。我在西工大呆了3年,但请相信,我所说的绝对不会带有任何感情色彩,我只是作为一名学生客观的评价西工大,我的母校。

在上大学前有很多人对我说,如果你要评价一所大学,那么你不必在乎她的设施,甚至不必在乎她的师资,你唯一需要在乎的只有她的学风,这也是一所好的大学和一所一般的大学的最大的差别.我想凡是读过大学的人对这点应该都深有体会,如果从这个角度来说西工大就是一所很不错的大学,因为她的学风太浓厚了.我不想隐瞒在快考试时出现的自习室紧张的现象,因为这是所有高校共同的特点,也是正常的现象.但平时你在西工大看到很多刻苦学习的人.你会发现在12号楼前哪个花园里到处是大声朗读英语的人,你会发现很少有人逃课,你会发现老师对作业的严格要求,你也许会不相信经常有人因为少交作业而被取消了考试资格.刚上大一的时候,舍友们常说自习室太恐怖了,因为那里太安静了.我的一个舍友曾说,如果有的学校的学风比西工大还浓厚,那么我怀疑那里的学生怎么活,也许这样的话有点夸张,但当你融入这样一种气氛之中,你会发现它却有几分真实.当我的一些在西安其它高校的读书的同学周末找我出去玩,我却告诉他们我的作业很多,不能去时,他们大都感到奇怪,因为据我所知他们的作业基本没有或者是很少的,而且考试的难度也不是很大.在西工大,电脑,电视,VCD等物品在大一大二的宿舍里是明令禁止使用的,更不要想在宿舍里有网线,而很多大学这些却是学校给学生提供的,起码我知道在很多高校中的宿舍是有电视和网线的,电脑是不做要求的.也许你会感觉这样的大学生活无聊和乏味,但当你发现自己因迷失于电视和网络而虚度四年的光阴的时候,你会感到悔恨,毕竟学习四年和玩,混上四年的效果是完全不一样的,这也是西工大学生就业率很高的一个原因.

西工大的老师给我的印象是朴实和认真.当然任何学校的老师都是良莠不齐,有好的也有坏的,但对于本科的学习任务来说,老师的作用大,但再大也大不过自己的因素,我曾经的高数老师是学校的最好的,但她带的学生的成绩并不是全校最好的,就很好的说明了这个问题.而所谓院士和特聘教授,对于本科来说似乎有些遥远.从整体来说西工大的老师还是水平很高的,为什么有这么多好的老师会留下来呢,尤其是青年教师?我曾经的英语老师说明了这个原因,她说:“到了我们现在这个水平和年龄更多考虑的应该是出国了,但是我们大多数人为什么留下来,很大的原应是因为西工大的附中,因为它的西安市乃至陕西省最好的中学了,我的孩子如果想上西工大附中,那么我就的留在西工大,我的孩子今年才9岁,她要先上西工大的小学,然后是初中和高中.其实西工大的附中对于稳定教师队伍的作用是十分大的.“仔细想想也确实是这样,因为在BBS中我常常看到这样的贴子在西工大附近的排名,附中第一,附小第二,附幼第三,而西工大是第四,也说明了这个事实.最近附中在建新的校舍,看的我们这些大学生都羡慕,因为它的露天操场可是在空中的啊.有些人说西工大缺少青年教师,但根据我的认识是很多西安的高校的青年教师想进西工大,但不容易进来,因为很多水平并没有符合学校的要求.

西工的科研实力是很强的,不仅因为她的国防性质,更因为她汇集了很多三航方面的专家.有人喜欢拿国防科工委的七所高校做比较,如果很客观的说,我承认西工大不如哈工大,但比起北航,除了地理位置和好听的名字外,西工大在航空航天方面的实力绝不次于北航,这一点可以从连续5年的全国十大劳动的模范航空领域有四年是西工大的毕业生,而只有一年是北航的毕业生,还可以从西工大的研究生毕业后的薪水高于北航的而得出结论. 而且近年来,在中国的国防科技领域的很多少壮派都出自西工大.而有人奇怪,为什么西工大这样的环境会造就这样的人才呢?因为西工大的校训是“公诚勇毅“.校风是“三实一新“.西工大人是朴实的,是塌实的,是扎实的.而且进入985后,相信由于投资的力度,学校的科研实力和综合实力都会有明显的提升.



西工大的图书馆有新馆和老馆两座,老馆的书的确是有点旧了,但你仔细在其中翻一翻,找一找,你往往会有意外的发现,毕竟过去有很多东西还是很经典的,而现在的书有很多为了符合读者的胃口而流于肤浅和急进.新馆和老馆的某些藏书室还是有很多的新书的 ,而且有些是很新很新的,虽然只能借两天,而且超了期就要罚款,呵呵,超一天一块,但是可以续借的,续借的次数也是没有限定的,所以只要你记性好,腿脚勤快,也是可以一直看完的.何况校园并不大,上课途中和下课是就可以搞定.而且我逐渐发现这样的借新书的好处还是很多的,因为新书如果一个人拿走好长时间才还,那么很影响大家的借阅.比如有一次我考试马上需要一本书,但是没找到,可是只是等了两天我再去就有人还进来了.有人抱怨说学校的计算机方面的新书很少,这种抱怨让我莫名其妙,因为我看到很多计算机方面的很新的书放在那里,而且就计算机而言的确需要更新知识,但我感觉经典的东西还是经典,你学计算机,基础的二进制没变吧,WINDOWS98和XP的差别真的很大吗?

我说西工大不漂亮,甚至可以说很不漂亮,而且很多人喜欢拿工大和武大和夏大比,呵呵,我感到这种比较确实对比度很强.我没去过新校区,但听说位于秦岭下,很漂亮,希望建好后,如传闻所说的山水田园.但似乎校园烂成了西安高校的特色了,四大名校除了西交还可以外,其他的西大和西电好象还不如工大,但西大的文科实力,工大的工科,西电的电子类专业又有几所漂亮学校可以比呢?美丽真的是大学的硬性指标?上学是为了看风景吗?
刚到西工大的时候,她的外表确实让我失望过,宿舍让我失望过,设施让我失望过,但当你渐渐明白,你的大学生活不是为了风花学月,不是为了体验一种奢华,而是为了学习和锻炼自己时你会明白,其实这些并不重要.因为宿舍没有暖气,我们在冬天挨过冻,那时常说入睡需要勇气,而起床更需要勇气.但过后你发觉其实很多东西都是一种锻炼.西工大的餐厅应该在西安的高校中很好的,虽然对于我这个外地人我仍然感到不习惯,但西安的高校有吃在工大的说法.我曾为学校的上网的地方少而价钱贵抱怨过,但如果一所大学里到处都是苹果电脑,这样的大学,尤其是在中国,这个发展中的国家,一个教育水平还十分落后的国家,是否具有讽刺意味呢?而且过多的上网是对学习有好处还是坏处,我想大家都很明白.有人抱怨学校的名人讲座和报告会太少,但我发觉这样的讲座,尤其是在工学方面的并不少,而且你是否想过在你完成了学习的任务,和处理完很多事情,比如学生工作后,你还有多少时间去听所谓的讲座,而你从讲座中又能真正的学习到多少有用的东西,除了可以见到名人,听听大家们的深奥的,甚至可以说是完全不懂的演讲报告外,你能收获多少.如果这些东西可以从某个角度评价一所大学的实力和内涵的话,那么我感觉在本科阶段有点言过其实.而且是不是西工大学习北大那样请来了周星驰,每年不顾一切的安排上千场的名人报告会西工大就会成为一所名校呢?显然不是,因为北大的有它的自由氛围,有它的人文底蕴,有它的高分学生,更有它首都的地理优势,这些是西工大所没有的,所以在这方面西工大不能比,比不上,更没有必要去比,不说北大,就是和一些财大气粗的高校也是没必要去比的.

我曾抱怨过学校的社团雷声大而雨点小,宣传的时候有多么好,而到时候却连人也找不到,甚至有一种上当的感觉,但当有同学象我说起大多数学校都有类似的情况,说大学的社团只属于新生时,我也就不奇怪了.其实就根本原因来说,社团始终是学生的组织,学生有繁重的学习任务,所以对于社团的组织者他们的初衷往往会因为大多数的参与者的时间不能都统一,或者大家都没有时间和精力去参加这些活动而最终破产,而且作为学生组织,你活动的场地那里来,你的经费除了社员交的一点钱外你又能拉多少赞助,你又能对一些活动可能产生的后果负多大的责任呢?你可以象北大的山鹰折翅那样在行动之前签下生死状吗?显然这所有的一切都有很多不可确定的因素,而且不是一腔热血就可以解决的,而且我们是学生,学习是我们最重要的任务.记得我大一的唯一一次逃课就是为了参加辩论演讲学会的一场辩论赛.而且因此还差点耽误了期中的一次考试.而社团说白了,除了一点锻炼外,更多可能是娱乐吧,那么我们把娱乐的时间花在学习上,是不是值得呢?也许你会说现实中需要的人才不是书呆子,但我告诉你,现在的用人单位看中是你的成绩单,而不是各类活动的奖状和种种华而不实的经历,而考研和保研更是成绩说话!何况你又能在活动中真正的使自己得到多少锻炼还是个未知数.

对于西工大的后勤我会有一些不满意,比如饭菜太贵,超市的东西贵,服务态度不好,洗澡的花费太高......
也许这样的抱怨会大量的存在于学生中间,对于这种抱怨的合理性无可厚非,我也希望学校能在这方面下大的工夫去改善.但不知你是否知道什么叫做后勤产业化,其实用我一个西安同学的话,那就是尽可能的剥削学生,这句话其实一点没错.逐利是商家的本性,在校园这种封闭的,似乎有点计划经济味道的环境中,社会化所引入的竞争是有限的,所以产生上述的现象也是再所难免,而全面的引入竞争,则又会使校方感到肥水流外人田了,而不愿意这样.说白了就是人自私的一种本性,在短期内想改变也不是很现实.在这方面做的最好的其实还是餐厅,因为你经常可以在餐厅听到有人叫你来买他的饭菜.那么既然不好改变,而最主要的餐厅做的还可以,那么超市的东西是不是可以利用课余在时间在校外买到,洗澡,理发也去校外,太白路,白庙村完全可以满足我们的需要.而且说不定学校因为看到顾客少了而寻求改进也说不定.再者西工大的打水用卡,洗澡用卡,要远远早于北京师范大学,而且是一卡通,而不需要用其他的卡,而北师的这种方式还被中央台报道,要在北京的高校大力推广,在这点上西工大的后勤是不是走在了前头呢?还有西工大的桑拿加冲浪浴才5元,很便宜了.还有人抱怨西工大的超市和商场太少了,但我的感觉是足以满足学生的需求了,因为本部并不大,要那么多商场更多的是浪费.

以上是我对学校方方面面的一点认识,我没有夸大,也没有谦虚,该做出解释的,我认为我已经做出了合理的解释,我说的也都是良心话.诚然由于地理位置,很多方面的原因,工大是在很多方面没有办法和东南沿海地区的高校和很多名校相比的,但工大有她自己的特色,有她的定位和发展方向,而且我相信她会越来越好.读到这里的西工大同学,你是否记得有在校园很流行的话“今天我以工大为荣,明天工大将以我为荣呢?“那么我们是不是为了自己的明天,工大的明天,在西工大这个良好的环境里刻苦的学习呢?


下面是西工大的一些量化数据,以供参考


学校定位:西北工业大学坐落在古城西安,是我国惟一一所以发展航空、航天、航海工程教育和科学研究为特色,以工理为主,工、理、管、文、经、法协调发展的多科型、研究型和开放型的科学技术大学,隶属国防科学技术工业委员会。

发展前景:985工程(教育部3亿+国防科工委3亿+陕西省3亿)投资在全国高校中是名列前茅,首批211,首批设立研究生院,首批国家级大学科技园,首批34所软件学院,近年来遇到,西部大开发,国防大加强,教育大发展的历史机遇.

科研成果:建校以来,学校为国防科技事业和国家经济建设输送了9万多名高级科技人才,其中博士1000多人,硕士7600多人。学校实力雄厚,“七五“以来,先后获国家和省部级优秀教学成果奖100余项,获国家和省部级科研成果奖1100余项。科研经费连年递增,2002年科研经费4.54亿元,2003年科研经费突破5亿元,居全国高校前列。

所取得的全国第一:
1956年2名学生入选国家队,在布达佩斯国际航模赛上为我国首次夺得两个单项第二。

1957年合并成立西北工业大学,是我国唯一一所以航空、航天、航海工程教育哈科学研究为特色的国防重点大学。

1958年研制首飞成功我国第一架小型无人驾驶飞机。

1974年研制成功我国的一台机载计算机。

1979年研制成功我国第一台主被动联合制导水下航行器。

1982年建成全国速度最快的高速水洞1984年至1989年,培养了航空宇航制造工程、铸造、飞行力学、航空发动机、固体火箭、水中兵器6个学科的中国第一位博士。

1986年初,在全国高校中率先提出了“服务育人”的口号。

1989年建成全国最大的多用途消声水池。

1991年,中宣部、国家教委和团中央从1982年以来全国几十万大学生中评出215名优秀大学毕业生,其中西工大毕业生占5名,名列全国高校第一。

1991年研制成功我国第一块航空专用大规模集成电路芯片。

1991年至1992年连续两年在国际著名工程索引《EI》收录的论文数位居全国第一。

1994年建成亚洲最大的低速翼型风洞。

1994年创建亚洲唯一的培养硕士试飞员的试飞员学院。

1994年我校男子排球队参加全国排球乙级联赛,获得冠军。成为全国甲级队中唯一的一只大学生代表队。

1996年成为全国最大的无人驾驶飞机科研生产基地。

1998年创建国内第一个“空间材料科学实验室”。

1998年西工大于中国试飞院联合培养我国第一批硕士试飞员。

我校“特聘教授”在西北、西南地区人数最多。

有33名博士或教师获得国际著名的洪堡奖学金,位居全国高校第一。

数据: 排名:2003排名 武XX:26 网大:21 中国校友会 24 平均排名 24
虽然大学排名均来自民间,且其科学性和客观性有待质疑,且受到并校,文理等因素的影响 ,但起码可以大致反映一个学校的综合势力
师资:以最新数据
两院院士:12人
俄罗斯宇航科学院外籍院士:3人
国际高校科学院院士 :1人
亚太地区材料科学院院士:1人
“长江学者“特聘教授:9人
博士生导师:近300人
教授、副教授:1300余人
(据说西工大的某些院士是与上海交大共有的,但据我所知其余的数目没有水分)


学科势力:学院:13
本科专业:52
硕士点:90
博士:48
博士后流动站:10
一级博士学科:10
国家重点学科:10
国家重点实验室:5 专业实验室:4,省部级重点实验室:10 省级工程研究中心:9
硬件:占地:本部:1200于亩(包含教职工生活区),建筑面积:91万平方米
国家大学科技园占地:1100亩
沣河校区占地:550亩
新校区规划占地:3900亩(估计2004初步投入使用,2008建成)
总占地面积:6650亩(未加软件学院和软件园)
藏书:151万册(虽然有些书很久,但新馆的书都很新,此外学生的数量较期于重点大学少 ,所以书本平均在每一个人身上的量在重点大学中还是靠前的)
科研经费:2000年达到2.68亿元
2001年突破3亿元大关
2002年科研经费4.54亿元
2003年科研经费突破5亿元
2003年科研经费全国高校排名第7

转文章一篇


我是从西工大来的,那似乎是一个被人遗忘的角落,很少有我们学校的学生出来说几句话
。我想说几句。

我在西安生活过,在西工大上的学,现在在北京,看到各大论坛和不少同学的帖子,反正
所有的帖子中我现在的学校都在以前本科时候西工大的前面。

有时候很是无言,我接触过各个大学的学生,我接触过的许多学生也工作或者出国了,有
时候实在看不过眼,我西工大的同学,现在好多在平凡的岗位上工作,有的甚至在九泉,
西昌等偏远地区,有的同学甚至就在沙漠里常年没有人烟的导弹发射地,还有一个同学在
太平洋的小岛上进行卫星测控!更多的在国防军工企业和科研单位里做技术工作,我们不
崇高,也会经常有牢骚,但谁让俺们就是为国家干这个的,到了北京,看看和接触了很多
大学,包括北大,清华的学生,也知道他们平时的生活,他们毕业以后的去向,有时候我
忍不住想说:北大清华等北京学校应该羞愧!每年国家给了你们那么多钱,每一年全国各
地最优秀的的学生都送给你们,可看看你们的成绩,你们培养出来的学生都在做什么?在
西工大我知道好多老师用那么一点可怜的经费做着国防口的科研产出,有的甚至自己掏腰
包,北京N多学校,我看着你们那些老师和那些科研学术机构做的那些事情,都心寒!!!
即使退一步,你们每一年的成果是多,可是那和对你们的资金和生源投入成正比么?而且
说实在的,我觉得你们甚至不如远在兰州的兰州大学,去看看SCI索引,北大情话等学校包
括你们的学生老师脸红不红,兰州大学国家每年给多少钱?他们是什么生源,不说了,越说越气。

西工大,哈工大,兰大等学校每一年用那么点钱和一般生源给国防科研战线,给各个国家
部门的普通岗位输送了那么多人,清化北大每年用那么多钱和那么好的生源给美国输送了
那么多人才,我们的学生是不聪明,英语是没有那么溜,我们的观念是不新,甚至土得掉
渣,可是正是这些学生,每一天给国家添一块砖,加一块瓦。经商,当官,包括学术,你
们为什么活得那么滋润?都是那些就会弯着腰干活的人当砖做瓦支撑着你们,你们还好意
思在各个行业无不用其机地用你们的新观念腐败,在商业,官场,甚至学术,你们知道害
羞两个字怎么写么?!


别排什么名了,如果要排名,我只向那些无数普通的但给国家在切实做着贡献的高校致敬
,而绝不是对那几所所谓排在最前头的!!!!!!!!!

当我们站在国家面前,当我们站在普通中国人民面前,当我们站在投入产出比面前,我向
哈工大,向西工大,向兰大等学校致敬,清话,北大,那以前曾经是中国人思想和启蒙的
地方,曾经是国家脊梁的地方,曾经培养出最优秀知识分子的地方,现在,至少现在不值!
2018-12-25 22:49:00 weixin_34152820 阅读数 27
  • 量化分析师的Python日记

    您观看课程学习后 免费入群领取【超全Python资料包+17本学习电子书】 量化分析师的Python学习教程,课程先从介绍Python本身一些基本语法,再介绍 python 相关应用及在数据分析及处理领域几大利器:pandas、scipy、numpy、sklearn、matplotlb。

    9827 人正在学习 去看看 CSDN讲师

      对于图像质量评价(IQA)数据库,TID2008算是不大不小的数据集了。TID2008是由乌克兰国家航空航天大学的N504信号接收、传输与处理系建立,包括25幅参考图像,1700幅失真图像。失真类型有17种包括:加性高斯噪声、颜色分量强于照明分量的加性噪声、空间位置相关噪声、掩膜噪声、高频噪声、脉冲噪声、量化噪声、高斯模糊、图像噪声、JPEG压缩、JPEG2000压缩、JPEG传输错误、JPEG2000传输错误、非偏心式噪声、不同强度的局部块失真、强度均值偏移以及对比度变化。该数据库的DMOS值由838观察者给出256428个数据统计得到,MOS取值范围为[0,9]。下载链接如下:http://www.ponomarenko.info/tid2008.htm,从作者那里下载得到的所有失真图像是统一放在distorted_images文件夹中的,而对应的主观评价分数是放在mos_with_names.txt文本中的,如果是用算法对所有失真进行评分当然很方便,但是很多时候需要预测单独失真图像,比如说只想要用程序预测高斯模糊失真图像的分数,然后与对应的主观评分进行比较。因此,我想把distorted_images中的失真图像按照失真类型进行分类,分为17类,每一类存到一个单独的文件夹中,然后在文件夹中顺便放上对应的主观评分。

1、将mos_with_names.txt这个文件夹存的内容按失真类型分割,因为它的命名方式是这样的:

参考图像号,失真类型,失真水平:“iXX_YY_Z.bmp”。

      例如,名称为“i03_08_4.bmp”是指第3个参考图像,第8个失真类型和与此失真相关的第4种水平。同样地,名称为“i12_10_1.bmp”指这是第12个参考图像,第10个类型的失真与第一种失真水平。

     所以做起来也没那么复杂,本来想手动的, 每种失真类型建立一个文件夹,文件夹中建立一个txt来保存数据,首先我手动建立了17个文件夹,以#1到#17命名,确实比较蠢,手动粘贴复制了几个就放弃了,还是写程序可能要快些。百度之后,修修改改最后的代码是这样的:

%filename = '.\mos_with_names.txt';
 %[vale,name] = textread(filename , '%f %s');
 clc; clear
 
file = '.\mos_with_names.txt';
fid = fopen(file,'r');
disp(['Reading file: ',file]);
linenumber = 0;
fid1=fopen('.\#1.txt','wt'); %必须要以wt的方式打开,不然不能换行
fid2=fopen('.\#2.txt','wt');fid3=fopen('.\#3.txt','wt');
fid4=fopen('.\#4.txt','wt');fid5=fopen('.\#5.txt','wt');
fid6=fopen('.\#6.txt','wt');fid7=fopen('.\#7.txt','wt');
fid8=fopen('.\#8.txt','wt');fid9=fopen('.\#9.txt','wt');
fid10=fopen('.\#10.txt','wt');fid11=fopen('.\#11.txt','wt');
fid12=fopen('.\#12.txt','wt');fid13=fopen('.\#13.txt','wt');
fid14=fopen('.\#14.txt','wt');fid15=fopen('.\#15.txt','wt');
fid16=fopen('.\#16.txt','wt');fid17=fopen('.\#17.txt','wt');
while ~feof(fid) 
    linenumber = linenumber + 1;
    line = fgetl(fid); 
    if(line(11:14) == '_01_')
%disp([num2str(linenumber),':',line]);
        fprintf(fid1,[line,'\n']);
    elseif(line(11:14) == '_02_')
        fprintf(fid2,[line,'\n']);
    elseif(line(11:14) == '_03_')
        fprintf(fid3,[line,'\n']);
    elseif(line(11:14) == '_04_')
        fprintf(fid4,[line,'\n']);
    elseif(line(11:14) == '_05_')
        fprintf(fid5,[line,'\n']);
    elseif(line(11:14) == '_06_')
        fprintf(fid6,[line,'\n']);
    elseif(line(11:14) == '_07_')
        fprintf(fid7,[line,'\n']);
    elseif(line(11:14) == '_08_')
        fprintf(fid8,[line,'\n']);
    elseif(line(11:14) == '_09_')
        fprintf(fid9,[line,'\n']);
    elseif(line(11:14) == '_10_')
        fprintf(fid10,[line,'\n']);
    elseif(line(11:14) == '_11_')
        fprintf(fid11,[line,'\n']);
    elseif(line(11:14) == '_12_')
        fprintf(fid12,[line,'\n']);
    elseif(line(11:14) == '_13_')
        fprintf(fid13,[line,'\n']);
    elseif(line(11:14) == '_14_')
        fprintf(fid14,[line,'\n']);
    elseif(line(11:14) == '_15_')
        fprintf(fid15,[line,'\n']);
    elseif(line(11:14) == '_16_')
        fprintf(fid16,[line,'\n']);
    elseif(line(11:14) == '_17_')
        fprintf(fid17,[line,'\n']);
        
    end
end 

fclose(fid1);fclose(fid2);fclose(fid3);fclose(fid4);
fclose(fid5);fclose(fid6);fclose(fid7);fclose(fid8);
fclose(fid9);fclose(fid10);fclose(fid11);fclose(fid12);
fclose(fid13);fclose(fid14);fclose(fid15);fclose(fid16);
fclose(fid17);fclose(fid);

  这个代码比较简单,很多重复性的代码,反正能实现要求也就懒得改了,运行之后在当前文件夹下生成17个txt文件,每个文件包含一类失真图像的名字和主观评分,然后把这些txt手动放到之前建立好的文件夹下就可以了。

2、根据txt中的名字将对应的图片从distorted_images中提取出来放到对应的失真类型中去,这个工作其实也不算复杂,因为失真文件夹中的文本中已经有该类失真图片的名字了,直接打开txt文本取出文件名,根据文件名到distorted_images中读取图片,然后保存到对应的文件夹中,最后再用循环把17类图片都操作了就好了。代码如下:

for i =1:17
    file = ['.\disimage_fenkai\#',int2str(i),'\#',int2str(i),'.txt'];
    fid = fopen(file,'r');
    disp(['Reading file: ',file]);
    while ~feof(fid) 

        line = fgetl(fid); 
        filename = line(8:19); %取出图片名
        A=imread(['.\distorted_images\',filename]);  %按照图片名读取图片 
        %mkdir('.\disimage_fenkai\#1\');
        imwrite(A,['.\disimage_fenkai\#',int2str(i),'\',filename]); %将图片按原名字存在#i中
    end
    fclose(fid);

end

  这个程序可以直接将distorted_images中的失真图片按照失真类型存到对应的失真文件夹中,方便以后操作。最后的效果如下:

 

 任意打开一个文件夹,存放的是对应的失真类型,比如打开#4:

 

转载于:https://www.cnblogs.com/libai123456/p/10176896.html

博文 来自: northseawind
没有更多推荐了,返回首页