#python
- numpy转换数据类型 image.astype(np.uint8)
- [::-1]表示倒序
- 显示彩色图像的前两维(即灰度图像):image[:,:,0]
- 指定工作目录
import os
import sys
os.chdir(r'F:\demo\car')
- 获取当前目录: os.getcwd()
- 图片的类型转换:
从cv2.imread()读取的图片是uint8格式,[0-255]范围之间,进行类似 255. * 2 - 1的操作,就是从uint8—>float64,变成float之后就可以做运算,float64取值范围是[-1,1],float32的取值范围是[0,1],uint8的取值范围是[0,255]
image = cv2.imread("F:\\demo\\1.jpg")
print(image.dtype) #uint8
image2 = image / 255. * 2 - 1
print(image2.dtype) #float64
- tensor和array的相互转换
tensor转array:tensor.eval() #(必须在会话中)
array转tensor:tf.convert_to_tensor(array)
-
矩阵拼接: 先扩充维度tf.expand_dims(a,axis=0)
再使用tf.concat([a,a],axis=0) 拼接两个a到第0维。 -
写入文件使用:
with open("output.txt","w+") as f:
f.write(parms)
#写入的要求是str格式,如果是array,则使用f.write(str(parms))转成str即可。
opencv的使用(python)
###1. 读取图片
image=cv2.imread('F:\\demo\\123.jpg')
print(image.shape) #(300, 533, 3)读进来的尺寸是(高度,长度,通道)
print(np.asarray(image.shape[:2][::-1])) #[533 300]
#解析:[:2]表示只取前两维,[::-1]表示逆序,相当于得到了长度,高度。
opencv的cv2.imread()读取的是BGR格式图像,需要转换成RGB,这里列出两种转换成RGB的方法~
img=cv2.imread('F:\\demo\\123.jpg')
plt.imshow(img)
plt.show()
#【方法1】
b,g,r = cv2.split(img)
img2 = cv2.merge([r,g,b])
plt.imshow(img2)
plt.show()
#【方法2】
image = img[:, :, ::-1]
###2. 读取视频
import cv2
videoCapture = cv2.VideoCapture('demo.avi')
fps = videoCapture.get(cv2.CAP_PROP_FPS) #获取帧率
size = (int(videoCapture.get(cv2.CAP_PROP_FRAME_WIDTH)), #获取视频尺寸
int(videoCapture.get(cv2.CAP_PROP_FRAME_HEIGHT)))
while(1):
ret, frame = videoCapture.read() #读帧
cv2.imshow("capture", frame) #显示视频
if cv2.waitKey(100) & 0xFF == ord('q'): #按q键退出
break
videoCapture.release()
cv2.destroyAllWindows() #释放窗口
###3. 读取视频帧,并转换成视频流
im_dir = 'F:\\demo\\car' #图片路径
video_dir = 'F:\\demo\\out.avi' #输出视频路径
fps = 30 #帧率
num = 284 #图片数
img_size = (1104,622) #图片尺寸
fourcc = cv2.VideoWriter_fourcc('M','J','P','G') #opencv3.0
videoWriter = cv2.VideoWriter(video_dir, fourcc, fps, img_size)
for i in range(1,num):
im_name = os.path.join(im_dir, str(i).zfill(8)+'.jpg')
frame = cv2.imread(im_name)
videoWriter.write(frame)
#print(im_name)
videoWriter.release()
print('finish')
#【注意】:图片命名格式为“00000001.jpg”,“00000002.jpg”等