标签:img 缩放 int dst cv2 height 图像 imgInfo
# 1 load 2 info 3 resize 4 check import cv2 img = cv2.imread(r"D:\PythonCode\neuron\image0.jpg", 1) imgInfo = img.shape # shape (行[height], 列[width]) print(imgInfo) height = imgInfo[0] width = imgInfo[1] mode = imgInfo[2] # 放大 缩小 # 等比例缩放/非等比例缩放 dstHeight = int(height * 0.5) dstWidth = int(width * 0.5) # 最近邻域插值/双线性插值(默认)/像素关系重采样/立方插值 dst = cv2.resize(img, (dstWidth, dstHeight)) cv2.imshow('image', dst) cv2.waitKey(0)
# 最近邻域插值法 原理
# src 10*20 dst 5*10
# dst <- src
# (1, 2) <- (2, 4)
# dst x 1 -> src x 2 newX
# newX = x * (src 行/目标 行) newX = 1 * (10 / 5) = 2
# newY = y * (src 列/目标 列) newY = 2 * (20 / 10) = 4
# 12.3 -> 12
# 双线性插值
# A1 = 20% * 上 + 80% * 下 A2 ...
# B1 = 30% * 左 + 70% * 右 B2....
# 1. 最终的点 = A1 * 30% + A2 * 70%
# 2. 最终的点 = B1 * 20% + B2 * 80%
# 1 info 2 空白模板 3 xy # 最近邻域插值法 算法实现 import cv2 import numpy as np img = cv2.imread(r"D:\PythonCode\neuron\image0.jpg", 1) imgInfo = img.shape height = imgInfo[0] width = imgInfo[1] dstHeight = int(height/2) dstWidth = int(width/2) dstImage = np.zeros((dstHeight, dstWidth, 3), np.uint8) # uint8是无符号八位整型,表示范围是[0, 255]的整数 for i in range(0, dstHeight): # 行 for j in range(0, dstWidth): # 列 iNew = int(i*(height*1.0/dstHeight)) jNew = int(j*(width*1.0/dstWidth)) dstImage[i, j] = img[iNew, jNew] cv2.imshow('dst', dstImage) cv2.waitKey(0)
标签:img,缩放,int,dst,cv2,height,图像,imgInfo 来源: https://www.cnblogs.com/mjn1/p/11215691.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。