您好,登錄后才能下訂單哦!
怎么在python中利用TensorFlow對圖像進行處理?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
一、圖片的放大縮小
在使用TensorFlow進行圖片的放大縮小時,有三種方式:
1、tf.image.resize_nearest_neighbor():臨界點插值
2、tf.image.resize_bilinear():雙線性插值
3、tf.image.resize_bicubic():雙立方插值算法
下面是示例代碼:
# encoding:utf-8 # 使用TensorFlow進行圖片的放縮 import tensorflow as tf import cv2 import numpy as np # 讀取圖片 img = cv2.imread("1.jpg") # 顯示原始圖片 cv2.imshow("resource", img) h, w, depth = img.shape img = np.expand_dims(img, 0) # 臨界點插值 nn_image = tf.image.resize_nearest_neighbor(img, size=[h+100, w+100]) nn_image = tf.squeeze(nn_image) with tf.Session() as sess: # 運行 'init' op nn_image = sess.run(nn_image) nn_image = np.uint8(nn_image) # 雙線性插值 bi_image = tf.image.resize_bilinear(img, size=[h+100, w+100]) bi_image = tf.squeeze(bi_image) with tf.Session() as sess: # 運行 'init' op bi_image = sess.run(bi_image) bi_image = np.uint8(bi_image) # 雙立方插值算法 bic_image = tf.image.resize_bicubic(img, size=[h+100, w+100]) bic_image = tf.squeeze(bic_image) with tf.Session() as sess: # 運行 'init' op bic_image = sess.run(bic_image) bic_image = np.uint8(bic_image) # 顯示結果圖片 cv2.imshow("result_nn", nn_image) cv2.imshow("result_bi", bi_image) cv2.imshow("result_bic", bic_image) cv2.waitKey(0) cv2.destroyAllWindows()
二、圖片的亮度調整
在使用TensorFlow進行圖片的亮度調整時,有兩種方式:
1、tf.image.adjust_brightness():亮度的全局調整
2、tf.image.random_brightness():亮度的隨機調整
下面是示例代碼:
# encoding:utf-8 # 使用TensorFlow調整圖片的亮度 import tensorflow as tf import cv2 import numpy as np # 讀取圖片 img = cv2.imread("1.jpg") # 顯示原始圖片 cv2.imshow("resource", img) img = np.expand_dims(img, 0) # adjust_brightness bright_img = tf.image.adjust_brightness(img, delta=.5) bright_img = tf.squeeze(bright_img) with tf.Session() as sess: # 運行 'init' op result = sess.run(bright_img) result = np.uint8(result) rand_image = tf.image.random_brightness(img, max_delta=.5) rand_image = tf.squeeze(rand_image) with tf.Session() as sess: # 運行 'init' op result2 = sess.run(rand_image) result2 = np.uint8(result2) cv2.imshow("result", result) cv2.imshow("result2", result2) cv2.waitKey(0) cv2.destroyAllWindows()
三、圖片的對比度調整
在使用TensorFlow進行圖片的對比度調整時,有兩種方式:
1、tf.image.adjust_contrast():對比度的全局調整
2、tf.image.random_contrast():對比度的隨機調整
代碼與圖片的亮度調整類似,這里就不贅述了。
四、圖片的飽和度調整
在使用TensorFlow進行圖片的飽和度調整時,使用下列函數:
tf.image.adjust_saturation()
飽和度調整范圍為0~5
下面示例代碼:
# encoding:utf-8 # 使用TensorFlow調整圖片的亮度 import tensorflow as tf import cv2 import numpy as np # 讀取圖片 img = cv2.imread("1.jpg") # 顯示原始圖片 cv2.imshow("resource", img) # 圖像的飽和度調整 stand_img = tf.image.adjust_saturation(img, saturation_factor=2.4) with tf.Session() as sess: # 運行 'init' op result = sess.run(stand_img) result = np.uint8(result) cv2.imshow("result", result) cv2.waitKey(0) cv2.destroyAllWindows()
五、圖片的標準化
在使用TensorFlow對圖像數據進行訓練之前,常需要執行圖像的標準化操作,它與歸一化是有區別的,歸一化不改變圖像的直方圖,標準化操作會改變圖像的直方圖。標準化操作使用如下函數:
tf.image.per_image_standardization()
下面是示例代碼:
# encoding:utf-8 # 使用TensorFlow調整圖片的亮度 import tensorflow as tf import cv2 import numpy as np # 讀取圖片 img = cv2.imread("1.jpg") # 顯示原始圖片 cv2.imshow("resource", img) # 圖像標準化操作 stand_img = tf.image.per_image_standardization(img) with tf.Session() as sess: # 運行 'init' op result = sess.run(stand_img) result = np.uint8(result) cv2.imshow("result", result) cv2.waitKey(0) cv2.destroyAllWindows()
六、圖像的色彩空間轉化
使用TensorFlow進行圖像的色彩空間轉化,包括HSV、RGB、灰度色彩空間之間的轉化,使用的函數如下所示:
tf.image.rgb_ to_hsv() tf.image.rgb_ to_grayscale() tf.image.hsv_ to_rgb()
看完上述內容,你們掌握怎么在python中利用TensorFlow對圖像進行處理的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。