python zip函数_对Python的zip函数妙用,旋转矩阵详解

对Python的zip函数妙用,旋转矩阵详解

Python的zip函数

示例1:

x = [1, 2, 3]

y = [4, 5, 6]

z = [7, 8, 9]

xyz = zip(x, y, z)

print xyz

运行的结果是:

[(1, 4, 7), (2, 5, 8), (3, 6, 9)]

从这个结果可以看出zip函数的基本运作方式。

示例2:

x = [1, 2, 3]

y = [4, 5, 6]

z = [7, 8, 9]

xyz = zip(x, y, z)

u = zip(*xyz)

print u

运行的结果是:

[(1, 2, 3), (4, 5, 6), (7, 8, 9)]

一般认为这是一个unzip的过程,它的运行机制是这样的:

在运行zip(*xyz)之前,xyz的值是:[(1, 4, 7), (2, 5, 8), (3, 6, 9)]

那么,zip(*xyz) 等价于 zip((1, 4, 7), (2, 5, 8), (3, 6, 9))

所以,运行结果是:[(1, 2, 3), (4, 5, 6), (7, 8, 9)]

注:在函数调用中使用*list/tuple的方式表示将list/tuple分开,作为位置参数传递给对应函数(前提是对应函数支持不定个数的位置参数)

class Solution(object):

def spiralOrder(self, matrix):

"""

:type matrix: List[List[int]]

:rtype: List[int]

"""

return matrix and list(matrix.pop(0)) + self.spiralOrder(zip(*matrix)[::-1])

obj = Solution()

print obj.spiralOrder([ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ]])

Your return [1,2,3,6,9,8,7,4,5].

以上这篇对Python的zip函数妙用,旋转矩阵详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

时间: 2018-12-12

利用numpy和scipy,我们可以很容易根据欧拉角求出旋转矩阵,这里的旋转轴我们你理解成四元数里面的旋转轴 import numpy as np import scipy.linalg as linalg import math #参数分别是旋转轴和旋转弧度值 def rotate_mat(self, axis, radian): rot_matrix = linalg.expm(np.cross(np.eye(3), axis / linalg.norm(axis) * radian)) a

打印旋转矩阵应该是很经典的算法问题了. 题目描述如下: 给定一个m * n要素的矩阵.按照螺旋顺序,返回该矩阵的所有要素. 思路:1,先定义矩阵的左上和右下的坐标,然后通过两个坐标来打印这一圈矩阵: 2,将左上的坐标下右下移动,右下的坐标向左上移动,来缩小打印圈,进行下一圈矩阵的打印: 3,一直缩小打印直到结束. 代码: def print_circle(matrix,up_hang,up_lie,down_hang,down_lie): result=[] if up_lie==down_ha

前言 本文主要给大家介绍了关于利用python打印出菱形.三角形以及矩形的相关内容,分享出来供大家参考学习,话不多说,来一起看看详细的介绍: 实例代码 #coding:utf-8 rows = int(raw_input('输入列数: ')) i = j = k = 1 #声明变量,i用于控制外层循环(图形行数),j用于控制空格的个数,k用于控制*的个数 #等腰直角三角形1 print "等腰直角三角形1" for i in range(0, rows): for k in range

blank.gif

本文实例为大家分享了python opencv实现旋转矩形框裁减的具体代码,供大家参考,具体内容如下 经常遇见旋转矩形框的裁减问题,那么思路是,将矩形框旋转正然后再裁减 # -*- coding:gb2312 -*- import cv2 from math import * import numpy as np import time def rotateImage(img,degree,pt1,pt2,pt3,pt4): height,width=img.shape[:2] heightNe

blank.gif

有时候需要对有角度的矩形框内图像从原图片中分割出来.这里的程序思想是,先将图片进行矩形角度的旋转,使有角度的矩形处于水平状态后,根据原来坐标分割图片. 参考:python opencv实现旋转矩形框裁减功能 修改原来的程序: 1.旋转函数的输入仅为矩形的四点坐标 2.角度由公式计算出来 3.矩形四点pt1,pt2,pt3,pt4由txt文件读入 4.在旋转程序中还处理了顺时针和逆时针及出现矩形框翻转的问题. 代码: # -*- coding:utf-8 -*- import cv2 from m

实现步骤: 1.通过水平投影对图形进行水平分割,获取每一行的图像: 2.通过垂直投影对分割的每一行图像进行垂直分割,最终确定每一个字符的坐标位置,分割出每一个字符: 先简单介绍一下投影法:分别在水平和垂直方向对预处理(二值化)的图像某一种像素进行统计,对于二值化图像非黑即白,我们通过对其中的白点或者黑点进行统计,根据统计结果就可以判断出每一行的上下边界以及每一列的左右边界,从而实现分割的目的. 下面通过Python+opencv来实现该功能 首先来实现水平投影: import cv2 impor

0. 引言 有如上一张图片,在以往的图像旋转处理中,往往得到如图所示的图片. 然而,在进行一些其他图像处理或者图像展示时,黑边带来了一些不便.本文解决图片旋转后出现黑边的问题,实现了图片尺寸不变的旋转(以上提到的黑边是图片的一部分). 1. 方法流程 (1)旋转图片,得到有黑边的旋转图片. (2)找出图片区域(不含黑边)的位置. (3)创建一个空图片(其实是矩阵). (4)将图片区域搬到此空图片. 2. 程序 #!/usr/bin/python # -*- coding: UTF-8 -*- "

如下所示: #coding=utf-8 #读取图片 返回图片某像素点的b,g,r值 import cv2 import numpy as np img=cv2.imread('./o.jpg') px=img[10,10] print px blue=img[10,10,0] print blue green=img[10,10,1] print blue red=img[10,10,2] print blue 以上这篇python opencv 读取图片 返回图片某像素点的b,g,r值的实现方

如下所示: import cv2 fps = 16 size = (width,height) videowriter = cv2.VideoWriter("a.avi",cv2.VideoWriter_fourcc('M','J','P','G'),fps,size) for i in range(1,200): img = cv2.imread('%d'.jpg % i) videowriter.write(img) 以上这篇对Python+opencv将图片生成视频的实例详解就是

一.利用直方图的方式进行批量的图片缺陷检测(方法简单) 二.步骤(完整代码见最后) 2.1灰度转换(将原图和要检测对比的图分开灰度化) 灰度化的作用是因为后面的直方图比较需要以像素256为基准进行相关性比较 img = cv2.imread("0.bmp") #原图灰度转换 gray = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY) #循环要检测的图,均灰度化 for i in range(1, 6): t1=cv2.cvtColor(cv2.imread

做了个Python的小练习,网上有人是利用PIL中的Image来实现的,觉得Opencv库挺方便的,于是利用Opencv库来实现了一下,代码如下: # -*- coding: utf-8 -*- # feimengjuan # 实现将图片转为字符画 import cv2 ascii_char = list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. ") #

使用opencv将图片转为灰度图主要有两种方法,第一种是将彩色图转为灰度图,第二种是在使用OpenCV读取图片的时候直接读取为灰度图. 将彩色图转为灰度图 import cv2 import numpy as np if __name__ == "__main__": img_path = "timg.jpg" img = cv2.imread(img_path) #获取图片的宽和高 width,height = img.shape[:2][::-1] #将图片缩小

OpenCV中在图片上输出中文一般需要借助FreeType库实现.FreeType库是一个完全免费(开源)的.高质量的且可移植的字体引擎,它提供统一的接口来访问多种字体格式文件.但使用FreeType需要下载库并重新编译,过程麻烦一点. 在Python中,可以借助PIL(Python Imaging Library)模块实现,相对简单很多,需要做的只是对图像进行OpenCV格式和PIL格式的相互转换. # -*- coding: utf-8 -*- import cv2 import numpy

OpenCV函数原型: cv2.resize(InputArray src, OutputArray dst, Size, fx, fy, interpolation) 参数解释: InputArray src 输入图片 OutputArray dst 输出图片 Size 输出图片尺寸 fx, fy 沿x轴,y轴的缩放系数 interpolation 插入方式 interpolation 选项所用的插值方法: INTER_NEAREST 最近邻插值 INTER_LINEAR 双线性插值(默认设置

你可能感兴趣的:(python,zip函数)