python图像翻转
准备跟着台湾的一个机器学习课程好好学学python,链接在这http://speech.ee.ntu.edu.tw/~tlkagk/courses_ML16.html
该课程开始有一个作业,叫做HW0,实际上与机器学习无关,只是为了验证大家预备编程能力,它包括两个部分,一个是读.DAT格式的数据,一个是图像翻转

这个作业我在windows下基于python2.7完成了,开发环境选择的是pycharm4.0
先上第一个作业上代码:

1 # -*- coding:UTF-8 -*-
2 __author__ = 'Administrator'
3
4 import csv
5 import cv2
6 import sys
7 filename = 'F:/台湾机器学习/hw0_data.dat'
8 ufilename = unicode(filename , "utf8") #这一块主要是因为汉字路径 也就是python调用open打开文件时,其路径必须要转换为utf-8格式
9
10 list=[]
11 row=0
12 colum=0;
13 with open(ufilename, 'r') as f:
14 data = f.readlines() #dat中所有字符串读入data
15 for line in data:
16 odom = line.split() #将单个数据分隔开存好
17 colum=len(odom)
18 numbers_float = map(float, odom) #转化为浮点数
19 list.append(numbers_float)
20 # print numbers_float
21 row=row+1
22
23 print("原始数据是:{0}行 :{1}列 的数据".format(row, colum))
24 index = int(raw_input("请输入要排序的列号(范围为1到 {0}):\n".format(colum-1)))
25 resultlist =[]
26 if index >0 and index < colum+1 :
27 list.sort(key=lambda x: x[index-1], reverse=False) #排序 按照第infex个 顺序排列
28 print(list)
29 print(list[0])
30 for i in range(row):
31 print(list[i][index-1])
32 resultlist.append(list[i][index-1])
33 csvfile = file('E:\\csvtest.csv', 'wb') #最终的数据保存为一行,以逗号隔开,所以保存为csv格式了
34 writer = csv.writer(csvfile)
35 writer.writerow(resultlist)
36 csvfile.close()
37 else:
38 print '输入错误,请重新输出序列'

输入数据的效果如下,一共500行 11列,很容易看出前10列是特征,最后一列是标签: +1 和-1

输出数据的效果如下: 其实就是获取了一列特征,当然特征经过排序,我的程序是升序

第二个作业上代码:

1 # -*- coding:UTF-8 -*-
2 __author__ = 'Administrator'
3
4 import csv
5 import cv2
6 import sys
7
8
9
10 imagename = 'F:/台湾机器学习/Lena.png'
11 img = cv2.imread(imagename.decode('utf-8').encode('gbk')) # 主要是汉字路径比较坑!
12 cv2.namedWindow("Image")
13 cv2.imshow("Image", img)
14 cv2.flip(img,-1,img)
15 cv2.namedWindow("NewImage")
16 cv2.imshow("NewImage", img)
17 cv2.imwrite("e:\\newlena.png",img)
18 cv2.waitKey(0)

这个就更加简单了 ,直接利用opencv的函数进行翻转了
效果如下:

python图像翻转的更多相关文章
- 【opencv基础】图像翻转cv::flip详解
前言 在opencv中cv::flip函数用于图像翻转和镜像变换. 具体调用形式 void cv::flip( cv::InputArray src, // 输入图像 cv::OutputArray ...
- 【Tool】Augmentor和imgaug——python图像数据增强库
Augmentor和imgaug--python图像数据增强库 Tags: ComputerVision Python 介绍两个图像增强库:Augmentor和imgaug,Augmentor使用比较 ...
- python图像、视频转字符画
python图像转字符画需要用到matplotlib.pyplot库,视频转字符画需要用到opencv库,这里的代码基于python 3.5 图像转字符画需要先将图像转为灰度图,转灰度图的公式是 gr ...
- OpenCV计算机视觉学习(11)——图像空间几何变换(图像缩放,图像旋转,图像翻转,图像平移,仿射变换,镜像变换)
如果需要处理的原图及代码,请移步小编的GitHub地址 传送门:请点击我 如果点击有误:https://github.com/LeBron-Jian/ComputerVisionPractice 图像 ...
- [Python] 图像简单处理(PIL or Pillow)
前几天弄了下django的图片上传,上传之后还需要做些简单的处理,python中PIL模块就是专门用来做这个事情的. 于是照葫芦画瓢做了几个常用图片操作,在这里记录下,以便备用. 这里有个字体文件,大 ...
- opencv2函数学习之flip:实现图像翻转
在opencv2中,flip函数用来进行图片的翻转,包括水平翻转,垂直翻转,以及水平垂直翻转. void flip(const Mat& src, Mat& dst, int flip ...
- Python图像全屏显示
需要在嵌入式设备上全屏显示图像,使用pil显示图像时,只能通过系统的图像浏览器显示.所以使用Python自带的tkinter import Tkinter as tk 这句在Python3中已经改 ...
- 【Python图像特征的音乐序列生成】使用Python生成简单的MIDI文件
这个全新的Python音乐创作系列,将会不定期更新.写作这个系列的初衷,是为了做一个项目<基于图像特征的音乐序列生成模型>,实时地提取照片特征,进行神经网络处理,生成一段音乐. 千里之行, ...
- python 图像的离散傅立叶变换
图像(MxN)的二维离散傅立叶变换可以将图像由空间域变换到频域中去,空间域中用x,y来表示空间坐标,频域由u,v来表示频率,二维离散傅立叶变换的公式如下: 在python中,numpy库的fft模块有 ...
随机推荐
- Eclipse中servlet简易模版
package ${enclosing_package}; import java.io.IOException; import javax.servlet.ServletException; imp ...
- js--判断当前环境是否为微信环境
/** * 判断是否是微信环境 */ function getIsWxClient () { var ua = navigator.userAgent.toLowerCase(); if (ua.ma ...
- clover无缘无故隐藏书签栏原因
可能是不小心按住了Ctrl+shift+B
- vue中export和export default的使用
1 export的使用 比喻index.js要使用test.js中的数据 首先在test.js文件中进行导出操作 在index.js文件进行导入操作 第一种方法: 此时的输出结果是: 注意: expo ...
- ZOJ-1107-FatMouse and Cheese-dfs+记忆化搜索
FatMouse has stored some cheese in a city. The city can be considered as a square grid of dimension ...
- 19.SimLogin_case08
# 模拟登录微博 import time import base64 import rsa import binascii import requests import re import rando ...
- <数据可视化>样例+数据+画图
1 样例 1.1样例1 子图系列 from pylab import * def f(x): return np.exp(-x) * np.cos(2*np.pi*x) x1 = np.arange( ...
- HDU 1147 /// 判断两线段相交
题目大意: 给定n条线段的端点 依次放上n条线段 判断最后在最上面(不被覆盖)的线段有哪些 到当前线段后 直接与之前保存的未被覆盖的线段判断是否相交就可以了 #include <cstdio&g ...
- 注解@Qualifier@Primary
在Controller中需要注入service那么我的这个server有两个实现类如何区分开这两个impl呢 根据注入资源的注解不同实现的方式有一点小小的区别 在Controller中使用 @Auto ...
- 笔记:Python操作sql
python操作mysql步骤: 创建connect连接 conn = connect(host='127.0.0.1', port=3306, user='root', password='1234 ...