python 图像读入 reshape尺寸时的问题

可以用matplotlib模块中的image模块进行图像的读取

#coding=utf-8
import matplotlib.pyplot as plt
import matplotlib.image as mimage


image=mimage.imread('lala.jpg')

print image.shape
# show a picture
image=image.reshape(1,-1)  
#-1是根据数组大小进行维度的自动推断

 #若使用的是image=image.reshape成一行,分别为R一块, G块 ,B一块
# t=imgX1[222,:].reshape(3,32,32)
# print('t=  ' ,t.shape)
# image=np.transpose(t,(1,2,0))
image=image.reshape(1186,1920,3)

print(image.shape)

plt.imshow(image)
plt.axis('off')
plt.show()


图像配准是指将两幅或多幅图像的位置、角度、比例等参数进行调整,使它们在同一坐标系下完全对齐。下面是一种基于Python图像配准实现方法: 1.首先,使用OpenCV库读入待配准的两幅图像,可以使用cv2.imread()函数。 2.通过选择合适的特征点检测算法(如SIFT、SURF等),对两幅图像进行特征点提取。 3.使用特征点匹配算法(如FLANN、BFMatcher等)将两幅图像的特征点进行匹配,并筛选出可靠的匹配点对。 4.使用RANSAC算法或其他优化方法估计两幅图像之间的变换参数(如旋转矩阵、平移向量等)。 5.使用估计得到的变换参数对待配准图像进行变换,使其与参考图像完全对齐。 6.使用OpenCV库中的cv2.imshow()函数将配准后的图像显示出来,并保存结果。 下面是一个简单示例代码: ``` import cv2 import numpy as np # 读入待配准图像和参考图像 img1 = cv2.imread('img1.jpg') img2 = cv2.imread('img2.jpg') # 特征点提取 sift = cv2.xfeatures2d.SIFT_create() kp1, des1 = sift.detectAndCompute(img1, None) kp2, des2 = sift.detectAndCompute(img2, None) # 特征点匹配 bf = cv2.BFMatcher() matches = bf.knnMatch(des1, des2, k=2) # 筛选可靠匹配点对 good_matches = [] for m, n in matches: if m.distance < 0.75 * n.distance: good_matches.append(m) # 估计变换参数 src_pts = np.float32([kp1[m.queryIdx].pt for m in good_matches]).reshape(-1, 1, 2) dst_pts = np.float32([kp2[m.trainIdx].pt for m in good_matches]).reshape(-1, 1, 2) M, mask = cv2.findHomography(src_pts, dst_pts, cv2.RANSAC, 5.0) # 变换待配准图像 result = cv2.warpPerspective(img1, M, (img2.shape[1], img2.shape[0])) # 显示配准结果 cv2.imshow("result", result) cv2.waitKey(0) # 保存结果 cv2.imwrite("result.jpg", result) ``` 以上代码仅为示例,实际应用需要根据情况进行调整和优化。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值