日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python中_python中的一些用法总结

發布時間:2023/12/10 python 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python中_python中的一些用法总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

用python寫了一個測試Demo,其中涉及到一些常用的用法,現在記錄在這里,方便后續查閱:

1 python中全局變量的使用:

全局變量在所有程序的外部進行定義,再函數內部使用的時候分為兩種情況,一種是只是使用全局變量的值,第二種是對全局變量進行的值進行修改,第一種情況下不會產生歧義,直接使用即可,第二種情況下則有可能會產生究竟是定義一個新變量還是對已有的全局變量的修改,因此需要加上global聲明。如上所述,列表,字典等,如果只是修改其中元素的值,則不需要聲明,直接引用即可。

2 字典按照key進行逆序排序,

排序后的返回值是一個list,而原字典中的名值對被轉換為了list中的元組,按照value排序只需要將lambda后面的索引換位[1]即可:

sort_sim = sorted(DICT_SIM.items(), key = lambda DICT_SIM:DICT_SIM[0], reverse = True)

3 numpy計算兩個向量之間的cos距離

feat_vector = net.blobs['color_pool4/3x3_s2'].data[0]

#print 'feat_vector is ', feat_vector

feat_list = feat_vector.tolist()

np_probe_feat = np.array(feat_list)

vec1 = np_probe_feat.astype('float64')

#print 'vec1 is ', vec1

for key in DICT_FEAT.keys():

#print 'DICT_FEAT.keys() is ', DICT_FEAT[key]

vec2 = DICT_FEAT[key].astype('float64')

#print 'vec2 is ', vec2

dis = np.dot(vec1,vec2) / (np.linalg.norm(vec1)*np.linalg.norm(vec2))

4 string的list轉為float型的向量,用于從文件中讀取變量到vector

while True:

line = f_feat.readline()

if line:

image_name = line[: -1]

image_feat = f_feat.readline()[1:-2]

image_feat = image_feat.strip().split(',')

image_feat = map(eval, image_feat)

array_feat = np.array(image_feat)

#print 'array_feat is ', array_feat#save the image name and its feat into the global dict

import cv2

from PIL import Image

import numpy

image = Image.open("plane.jpg")

image.show()

img = cv2.cvtColor(numpy.asarray(image), cv2.COLOR_RGB2BGR)

cv2.imshow("OpenCV", img)

cv2.waitKey()

import cv2

from PIL import Image

import numpy

img = cv2.imread("plane.jpg")

cv2.imshow("OpenCV", img)

image = Image.fromarray(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))

image.show()

cv2.waitKey()

prob = Image.open(filename)

cv2_prob = cv2.cvtColor(np.asarray(prob), cv2.COLOR_RGB2BGR)

prob_constant = cv2.copyMakeBorder(cv2_prob, 10, 10, 10, 10, cv2.BORDER_CONSTANT, value=BORDER_COLOR) #opecv中的補邊操作

prob_PIL = Image.fromarray(cv2.cvtColor(prob_constant, cv2.COLOR_BGR2RGB))

prob_resize = prob_PIL.resize((int(UNIT_SIZE_w), int(UNIT_SIZE_H)), Image.ANTIALIAS)

6 將一個向量寫到txt文件中,我是先將其轉為了list,然后將list強轉為string,然后寫入到文件中:

feat_vector = net.blobs['color_pool4/3x3_s2'].data[0]feat_list = feat_vector.tolist()wf.write(str(feat_list))

7 利用PIL庫將多張小圖組合成一張大圖:

def pinjie(images, prob, filename, param):target = Image.new('RGB', (UNIT_SIZE_w * (NUM_X + 1), UNIT_SIZE_H * NUM_Y))

target.paste(prob[0], (UNIT_SIZE_w * NUM_X, 0, UNIT_SIZE_w * (NUM_X + 1), UNIT_SIZE_H))for i in range(NUM_Y):

leftup_x = 0

leftup_y = UNIT_SIZE_H * i

rightdown_x = UNIT_SIZE_w

rightdown_y = UNIT_SIZE_H * (i + 1)

for j in range(NUM_X):

count = j + i * NUM_Ytarget.paste(images[count], (leftup_x, leftup_y, rightdown_x, rightdown_y))

leftup_x = leftup_x + UNIT_SIZE_w

rightdown_x = rightdown_x + UNIT_SIZE_w

quality_value = 100target.save(param + (filename.strip().split('/'))[-1] + '_merge.jpg', quality = quality_value)

總結

以上是生活随笔為你收集整理的python中_python中的一些用法总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。