图片处理-指定大小缩放

本文介绍了一种解决图片清晰度不足问题的方法,通过结合OpenCV和PIL库进行图片处理。首先使用OpenCV进行指定大小的缩放,然后利用PIL的ImageEnhance模块增强图片的锐利度,最终得到的图片清晰度显著提高。适合需要高质量缩略图或处理大量图片的场景。
摘要由CSDN通过智能技术生成

description: 解决清晰度不足/模糊的问题

图片处理-指定大小缩放

单独使用opencv或者PIL库的话都会出现不同程度的图片模糊,这里参考了文章:https://www.hawu.me/coding/26,同时运用了这两个库。最终清晰度明显提高。

import cv2, Image, ImageEnhance, time, os

strSourceFolder = raw_input("Input Source Images Folder:")
strOutputFolder = raw_input("Input Output Images Folder:")
nWidth = int(raw_input("Input Resized Width:"))

print "resizing..."
StartTime = time.clock()
nCounter = 0
for file in os.listdir(strSourceFolder):
    strSourceFilePathName = os.path.join(strSourceFolder, file)
    CV2_ImgOriginal = cv2.imread(strSourceFilePathName)
    fRatio = float(CV2_ImgOriginal.shape[1]) / nWidth
    nHeight = int(CV2_ImgOriginal.shape[0] / fRatio)
    CV2_ImgResized = cv2.resize(CV2_ImgOriginal, (nWidth, nHeight), None, 0, 0, cv2.INTER_AREA)
    CV2_ImgResized = cv2.cvtColor(CV2_ImgResized, cv2.COLOR_BGR2RGB)
    PIL_ImgResized = Image.fromarray(CV2_ImgResized)
    PIL_ImgEnhanced = ImageEnhance.Sharpness(PIL_ImgResized).enhance(2.0)
    strFilename = os.path.splitext(file)[0]
    PIL_ImgEnhanced.save(os.path.join(strOutputFolder, strFilename) + "_resized.jpg", 'JPEG', quality = 95)
    nCounter = nCounter + 1
    print file, "processed"
EndTime = time.clock()
print "Processed", nCounter, "images"
print "Total elapsed time:", EndTime - StartTime, "Seconds"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值