影像翻轉縮放與平移問題
老師您好,經過D4提供的sample做練習,有幾個問題想請教老師:
一、翻轉
1. 請問這個程式碼的h, w, c分別是什麼意思?
2. 爬文關於翻轉的文章,發現有這個寫法,請問跟上面的寫法有何不同呢?
flipVertical = cv2.flip(originalImage, 0)
flipHorizontal = cv2.flip(originalImage, 1)
flipBoth = cv2.flip(originalImage, -1)
二、縮放
1. 在sample裡面,有個計算花費時間部分,請問這個程式碼start_time = time.time(),是什麼意思?
2. 我發現使用cv2.INTER_LINEAR、cv2.INTER_CUBIC花費時間有差〈cv2.INTER_LINEAR花費時間跟cv2.INTER_NEAREST差不多;而cv2.INTER_CUBIC所花時間與前者多4倍〉,但圖片品質看似差不多?請問這是為什麼呢?
三、平移
在sample裡面,我看到一個程式碼如下:
shift_img = cv2.warpAffine(img, M, (img.shape[1], img.shape[0]))
再回頭看教材所寫的這個程式碼:
請問:
1. img.shape[1]、img.shape[0]是什麼意思?
2. 教材寫的column跟row是指?
以上問題,請老師多指教了,謝謝
回答列表
-
2019/11/28 下午 08:00Liaw Jiun贊同數:1不贊同數:0留言數:0
一、翻轉
1. 請問這個程式碼的h, w, c分別是什麼意思? h: image height, w: image_width, c: channel=(3=R,G,B)
-
2019/11/28 下午 08:04Liaw Jiun贊同數:1不贊同數:0留言數:1
請問:
1. img.shape[1]、img.shape[0]是什麼意思?
img.shape會給出三個值=[h, w, c]
Ans.:
img.shape[1](img.shape答案矩陣中第2個元素) = image_width
img.shape[0] (img.shape答案中矩陣中第1個元素)= image_height
2. 教材寫的column跟row是指?
Ans.: row列, 就是image的y軸, 高= img_height
column行, 就是image的x軸, 寬 = img_width
-
2019/11/28 下午 08:57Jeffrey贊同數:1不贊同數:0留言數:1
二、縮放
# 計算程序運行的時間間
start_time = time.time()
time.sleep(2)
end_time = time.time()
print(end_time - start_time)cv2.INTER_CUBIC --> 差值與縮放比例計算方式, 在4×4像素鄰域上的雙三次插值, 高pixel 損失少.
-
2019/11/28 下午 09:03Jeffrey贊同數:1不贊同數:0留言數:1
補充說明, 一張圖像表示方式: 長x寬xchannel 數;
Channel : 彩色 RGB, channel = 3, 單色或黑白 channel =1;
所以image 可以以 hxwxc ; 是一個3維data.
img.shape 就是表示 image 的 data 維度: h, w, c;
img.shape[0:2] = [h,w,c]