影象的尺寸調整,如放大或者縮小影象,我們可以用到cv2.resize函式,該函式可以將原影象精準的轉換為目標影象大小。
python:
dst = cv.resize( src, dsize[, dst[, fx[, fy[, interpolation]]]] )
src 輸入影象,源影象
dst 輸出影象,當dsize!=0時,大小為dsize,當dsize=0時,根據fx和fy確認,型別和出入影象型別一致
dsize 輸出影象大小,當dsize=0時根據以下計算公式計算:
dsize = size(round(fxsrc.cols), round(fysrc.rows))
所以dsize與fx、fy不能同時為0.
fx x方向上比例因子,當fx=0時,計算公式如下
(double)dsize.width/src.cols
fy y方向上比例因子,當fy=0時,計算公式如下
(double)dsize.height/src.rows
interpolation 插值方法
來自 不論是放大或是縮小影象都需要插值運算,縮小影象時,目標影象的畫素會對映為源影象中的多個畫素,放大影象時,目標圖形上的畫素可能無法在源影象中找到精確對應的畫素,都需要進行插值運算。
interpolation 取值如下
1)inter_nearest - 最近鄰插值法
2)inter_linear - 雙線性插值法(預設)
3)inter_area - 基於區域性畫素的重取樣(resampling using pixel area relation)。對於影象抽取(image decimation)來說,這可能是乙個更好的方法。但如果是放大影象時,它和最近鄰法的效果類似。
4)inter_cubic - 基於4x4畫素鄰域的3次插值法
5)inter_lanczos4 - 基於8x8畫素鄰域的lanczos插值
來自
import cv2
import matplotlib.pyplot as plt
img1=cv2.resize(img,(1024,1024),0,0)
img2=cv2.resize(img,(0,0),1.6,1.6,cv2.inter_cubic)
plt.subplot(2,2,1)
plt.imshow(img,cmap='gray')
plt.subplot(2,2,2)
plt.imshow(img1,cmap='gray')
plt.subplot(2,2,3)
plt.imshow(img2)
plt.show()
opencv 物體尺寸測量
1 原圖,已知左上角正方形的實際大小為 2cm 2 轉為灰度圖 高斯模糊 3 邊緣檢測 edged cv2.canny blur,50,100 開運算 4 根據左上角參考物體,計算單位長度中的畫素個數 pixel per cm dist in pixel dist in cm5 計算物體輪廓的最小外...
opencv調整視窗大小
window autosize。視窗大小會自動調整以適應所顯示的影象,但是不能更改大小 cv window normal 可以通過滑鼠來調整影象大小。cv namedwindow camera cv window normal cv imshow camera frame python中調整視窗大小...
禁止調整自定義控制項的尺寸
有時我們在自定義控制項時,出於某種原因的考慮 比如 防止在設計時誤操作 想禁止調整自定義控制項的尺寸 height 或 width 最初我是這樣實現的,這也是較簡單的方法 public class mybutton system.windows.forms.button 但是我對這樣的效果不太滿意,...