Image Retargeting - 图像缩略图 图像重定向

Image Retargeting

图像缩略图、图像重定向

前言

这篇文章主要对比DL出现之前的几种上古算法,为了作为DL方法的引子而存在,顺便博客也该更新点新内容上来了,这篇博文就是介绍了我最近在玩什么。

本文方法

传统的方法主要有三种:Resize拉伸、收缩)、Crop裁剪)和Seam Carving接缝裁剪)。

其中接缝裁剪这个算法挺好玩的,论文参见 Seam Carving,截止本篇博文,被引用次数是1914次,可以说是很经典的文章了。

该论文实现的效果图:

本文用到的python库

三种算法的对比由python实现,python版本为python3.8,对应下列依赖库版本为conda直接安装,不同版本请注意自己改动部分接口。

opencv 用于图像处理
scipy 用于图像卷积
notebook 提供环境
matplotlib 用于图像显示
tqdm 用于进度显示(可不用 主要是因为SC算法太慢了 会让人觉得程序卡了
numpy 用于辅助opencv

具体引用代码如下:

import cv2
import matplotlib.pyplot as plt
import numpy as np
from scipy.ndimage.filters import convolve
from tqdm import trange

图像的读入

都有opencv了,还用问么?

img = cv2.imread('test1.jpg')
imshow(img)
img.shape

图像的显示

其中imshow()函数是自己定义的,用于显示处理结果和处理过程的中间图像,这样就方便在notebook中查看了,需要注意的是opencv存储图像的格式和PIL不太一样,为bgr,需要转换。

def imshow(img):
    if (len(img.shape) == 2) :
        plt.imshow(img)
        plt.show()
        return
    b,g,r = cv2.split(img) 
    img_rgb = cv2.merge([r,g,b]) 
    plt.imshow(img_rgb)
    plt.show()

方法一:裁剪(Crop)

裁剪配合numpy的花式索引(别笑,这是正式名称)即可实现,本

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值