日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

opencv之图象裁剪

發(fā)布時間:2024/1/23 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 opencv之图象裁剪 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

在深度學(xué)習(xí)的模型訓(xùn)練中,經(jīng)常需要將模型裁剪成模型要求的輸入尺寸。本文介紹了如何將一個矩形的圖像裁剪成指定尺寸的正方形圖像。

import cv2 import osdef cut_images(origin_image, image_size):"""圖像裁剪:將圖像裁剪成固定尺寸的大小作為模型的輸入。(1)先將圖象resize成短邊和image_size一致,然后再從中間截取圖像。(2)此處只考慮了長寬相等的情況,因此image_size只是一個數(shù)值。:return 裁剪后的image數(shù)組。"""# origin_image = cv2.imread(origin_image_path)height, width = origin_image.shape[0], origin_image.shape[1]if height <= width:new_height = image_sizenew_width = int(width/height * image_size)# 注意:imread()返回的是(height,width), resize的參數(shù)是(width,height)origin_image = cv2.resize(origin_image, (new_width, new_height))# 從圖像中間截取cut_width = int((new_width-new_height)/2)return_image = origin_image[:, cut_width:cut_width+image_size, :]print(new_height, new_width, origin_image.shape, cut_width, return_image.shape)else:new_width = image_sizenew_height = int(height/width * image_size)origin_image = cv2.resize(origin_image, (new_width, new_height))# 從圖像中間截取cut_height = int((new_height-new_width)/2)return_image = origin_image[cut_height:cut_height+image_size, :, :]print(new_height, new_width, origin_image.shape, cut_height, return_image.shape)return return_imagedef cut_images_file(origin_image_path, target_image_path, image_size):"""將圖像或者目錄中的圖像剪裁成某個尺寸。:return:"""if os.path.isfile(origin_image_path) and not os.path.isdir(target_image_path):origin_image = cv2.imread(origin_image_path)return_images = cut_images(origin_image, image_size)cv2.imwrite(target_image_path, return_images)elif os.path.isdir(origin_image_path) and os.path.isdir(target_image_path):images = os.listdir(origin_image_path)for origin_image_name in images:origin_image = cv2.imread(os.path.join(origin_image_path, origin_image_name))print(origin_image_name, origin_image.shape)return_images = cut_images(origin_image, image_size)cv2.imwrite(os.path.join(target_image_path,origin_image_name), return_images)else:return 1def cut_images_demo():origin_image_dir = '/Users/lujinhong/Downloads/image_cut/origin'target_image_dir = '/Users/lujinhong/Downloads/image_cut/cut'cut_images_file(origin_image_dir, target_image_dir, 224)origin_image_file = '/Users/lujinhong/Downloads/image_cut/1.jpeg'target_image_file = '/Users/lujinhong/Downloads/image_cut/1_cut.jpeg'cut_images_file(origin_image_file, target_image_file, 224)if __name__ == '__main__':cut_images_demo()

總結(jié)

以上是生活随笔為你收集整理的opencv之图象裁剪的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。