该模块提供了一个简单而强大的机制,使用接缝雕刻算法调整图像大小。
pyCAIR的Python项目详细描述
pycair是一个内容感知图像大小调整(cair)库,基于sEAM雕刻,用于内容感知图像大小调整纸张。
目录
- CAIR是如何工作的
- 理解研究论文
- 项目结构和说明
- 安装
- 用法
- 演示
- 屏幕截图
- 待办事项 < > >
从提供的图像生成能量图和图像的灰度格式。
接缝雕刻算法通过从能量图中提取最小的能量值来寻找图像中不太有用的区域。
在动态规划与回溯相结合的帮助下,接缝雕刻算法使用自上而下或左向右的方法在图像上生成单独的接缝(取决于垂直或水平调整大小)
通过逐行遍历图像矩阵,计算每个条目的所有可能连接接缝的累积最小能量。通过将当前像素与前一行相邻像素的最小值相加,计算出最小能级。
从最后一行开始从能量矩阵中找出成本最低的接缝并将其移除。
重复此过程,直到根据用户指定的比率调整图像大小。
- 用户输入()-
参数:- 对齐:指定调整大小操作必须在哪个轴上执行。
- 缩放比率:在0和1之间进行浮点运算以缩放输出图像。
- 显示接缝:如果未选择此选项,则图像仅在背景中接缝。
- 输入图像
- 生成序列:执行所有操作后生成中间序列以形成视频。
generateVideo()-将每个图像路径传递到vid()以生成视频。
**vid()**-将每个输入图像写入视频缓冲区以创建完整的视频。
generateenergymap()-使用opencv内置函数获取能量并将图像转换为灰度。
**generateColorMap()**-使用opencv内置函数在给定图像上叠加热图。
getenergy()-使用sobel运算符和卷积函数生成能量图。
getMaps()-使用动态编程实现了获取接缝的函数。另外,将最小接缝的结果存储在单独的列表中,以便回溯。
DrawSeam()-在图像上使用红色绘制接缝(垂直和水平)。
雕刻()-重塑和裁剪图像。
cropbycolumn()-在两个轴(即垂直轴和水平轴)上执行裁剪。
cropbyrow()-旋转图像以忽略重复计算,并将旋转图像作为cropbycolumn函数的输入。
writeImage()-将图像存储在结果目录中。
writeImageg()将中间生成的图像序列存储在sequences dir中T.
createFolder()-一目了然
getfileextension()-不言而喻
图像/-存储要测试的输入图像。
视频/-存储从中间序列生成的视频。
结果/-存储最终结果。
序列/存储生成的中间序列。
只需运行pip install pycair
- [X]实现seam算法
- [X]生成图像的能量图和颜色图
- [X]显示垂直接缝
- [X]显示水平接缝
- [X]裁剪列
- [X]裁剪行
- [X]对命令行应用程序使用argparse
- [X]将子样本分别存储在裁剪和接缝的不同目录中
- [X]从子样本生成视频/GIF
- [X]提供更好的自述文件
- [X]提供使用示例
- []为每个函数生成单元测试
- []添加持续集成服务(Travis、工作服)
- []添加徽章
- []提供关于PYPI的更好的项目描述
- []使用spinx的文档
- []使用yolov2集成对象检测
- []识别最重要的对象(使用预测对象的概率)
- []反转最重要物体的能量值
- []重新应用接缝切割并比较结果
它是如何工作的
对研究论文的直观解释
< Buff行情>< Buff行情>< Buff行情><块引用>< Buff行情>项目结构和说明
目录结构:
pycair(根目录) 文件:helpers.py
其他文件夹: 本软件的许可证由GNU通用公共许可v3.0)Chirag Shah
-图像/
-结果/
-序列/(压缩到存储库中)
-视频/
-notdoneyet.py
-imgtovideos.py
-opencv_generators.py
-seam_carve.py
-帮助程序.py
安装
用法
'''It runs the entire code and returns final results'''frompyCAIRimportuser_inputuser_input(alignment,scale,seam,input_image,generate_sequences)'''It generates the energy map'''frompyCAIRimportgenerateEnergyMapgenerateEnergyMap(image_name,file_extension,file_name)'''It generates color maps'''frompyCAIRimportgenerateColorMapgenerateColorMap(image_name,file_extension,file_name)'''It converts sequence of images generated to video'''frompyCAIRimportgenerateVideogenerateVideo()'''It returns all the paths where images are present for generating video'''frompyCAIRimportgetToProcessPathsgetToProcessPaths()'''It returns seams, cropped image for an image'''frompyCAIRimportcropByColumnseam_img,crop_img=cropByColumn(image,display_seams,generate,lsit,scale_c,fromRow)'''It returns seams, cropped image for an image'''frompyCAIRimportcropByRowseam_img,crop_img=cropByRow(image,display_seams,generate,lsit,scale_c)'''It returns created folder'''frompyCAIRimportcreateFolderf=createFolder(folder_name)'''It returns extension of file'''frompyCAIRimportgetFileExtensionf=getFileExtension(file_name)'''It writes image to specified folder'''frompyCAIRimportwriteImagef=writeImage(image,args)
运行中
屏幕截图
图像1的结果:
<表><广告> <表><广告>原始图像
灰度 能量图
< /广告><正文> <表><广告>冬季彩色地图
彩色地图热 < /广告><正文> <表><广告>立柱接缝 剪切的列 < /广告><正文>行的接缝 裁剪行 图像2的结果:
<表><广告> < /广告><正文>>>>>>/th> <表><广告>原始图像
灰度 能量图
< /广告><正文> <表><广告>冬季彩色地图
彩色地图热 < /广告><正文> <表><广告>立柱接缝 剪切的列 < /广告><正文>行的接缝 裁剪行 待办事项
许可证
推荐PyPI第三方库