AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题

问题[imagemagick](unix)

Martin Hope
Binarus
Asked: 2024-11-17 19:19:45 +0800 CST

如何自动旋转矩形图像区域几度,使其左边框垂直(使用命令行工具,如 imagemagick)

  • 7

我有几千张图像,其主要特征如附图所示:所有图像都在(几乎)黑色的框架中,而实际图像内容几乎总是在白色背景上。

现在我想旋转实际图像内容,使该内容的左边框垂直。然后我想裁剪(修剪)图像,以便丢弃黑色边框,但完全保留实际内容。也就是说,即使包含实际内容的区域不是完美的矩形,也必须保留该区域的所有内容,这意味着之后黑色边框的剩余部分仍然可见。

考虑到我想要以这种方式处理的图像数量,我想我必须使用命令行工具来完成。过去,我曾使用 ImageMagick 完成此类工作(进行更简单的转换),但我真的不介意结合使用几种不同的工具来完成这项任务。

我已经尝试过的:

我研究过如何对图像进行倾斜校正,这种方法大多数时候都有效。但是,我发现的倾斜校正方法是将文本行设为水平。这很好,因为它使阅读更容易,但当然在大多数情况下,保存文本的区域的边框之后不会分别垂直或水平。这不是我想要的。

为了更详细地解释,我想:

  1. 检测黑框和包含实际图像内容的区域之间的左边缘。
  2. 沿着该边缘画一条(不可见的)直线。
  3. 确定该线与垂直线之间的角度。
  4. 将整个图像旋转该角度(负数),使得步骤 1 中的边缘变为垂直。
  5. 修剪图像,丢弃尽可能多的黑色框架,但保留包含实际内容的完整区域(因此,如果该区域不是完美的矩形,则接受保留黑色框架的其余部分)。

有人可以解释一下如何做到这一点吗,最好使用命令行工具?

在此处输入图片描述

imagemagick
  • 3 个回答
  • 44 Views
Martin Hope
Artifechs
Asked: 2024-09-14 01:36:21 +0800 CST

ImageMagick:使用 -kmeans 时,如何将某种颜色定义为索引颜色图中的第一个颜色?

  • 6

我需要将特定颜色作为颜色图中的第一个颜色,以-kmeans减少图像中的颜色数量。定义遮罩颜色时,虚幻引擎 1 纹理需要它。

这是我目前得到的全部信息:

magick "$PNG_FILE" -kmeans 255 "$PCX_FILE"

我可以在某种程度上使用-define kmeans:seed-colors="#ff00ff"指令来实现这一点,但是它会使输出变得太糟糕,因为它会阻止种子颜色被自动采样。

imagemagick
  • 1 个回答
  • 24 Views
Martin Hope
Sophie Bertillon
Asked: 2024-08-25 17:17:57 +0800 CST

使用 ImageMagick 重塑图像

  • 7

-resize我知道我可以使用或使用 ImageMagick 调整图像大小-scale,但如何使用ImageMagick重塑-resize图像?如果我使用或-scale:

magick image.png -resize 160x a.png
magick image.png -scale 160x b.png

我会得到这个:

在此处输入图片描述

但我希望拥有完全相同数量的像素、完全相同的值和完全相同的顺序,但如果这是一个单词,它们将被“重新流动”为不同的形状。

我已经研究出如何使用 Python 图像库和 Numpy 来实现这一点。我的起始图像是 80x80,如下所示:

在此处输入图片描述

from PIL import Image
import numpy as np

image = Image.open('a.png').convert('RGB')

npArray = np.array(image)

Image.fromarray(npArray.reshape(-1,160,3)).save('largeur160.png')
Image.fromarray(npArray.reshape(-1,40,3)).save('largeur40.png')
Image.fromarray(npArray.reshape(-1,10,3)).save('largeur10.png')

我得到了宽度为 160、宽度为 40 和宽度为 10 的这些图像:

在此处输入图片描述 在此处输入图片描述 在此处输入图片描述

imagemagick
  • 1 个回答
  • 35 Views
Martin Hope
cardamom
Asked: 2024-02-22 18:40:00 +0800 CST

转换质量、转换调整大小和转换密度之间的区别

  • 5

我正在尝试使用 Imagemagick 减小终端中 .png 的文件大小convert

convert -quality有谁知道,convert -resize和之间的区别吗convert -density?

convert -quality似乎根本不起作用,无论你给它99、30、10还是1。它有时会改变文件大小,甚至使它变得更大!

这是一个大约 10MB 的文件。我正在尝试将其减少到 1MB 左右。

我担心这convert -resize可能会对它造成影响,以至于如果有人去打印它,它就不再是 A4 页的大小了。

imagemagick
  • 1 个回答
  • 24 Views
Martin Hope
shea
Asked: 2024-01-23 02:44:26 +0800 CST

ImageMagick 的按数字顺序输入

  • 6

我有一个充满有序 jpg 文件的目录,如下所示:

1.jpg
2.jpg
3.jpg
.
.
.
265.jpg

在 Windows 上,我可以连续组合这些文件,以便使用scan.pdf

magick %d.jpg[1-n] scan.pdf

其中n是 jpg 的总数(在我的例子中是 265)。在 MacOS 上,使用zsh,我尝试了此操作并收到错误“ no matches found: %d.jpg[1-n]”(再次替换n)。如果我尝试

magick *.jpg scan.pdf

它没有以正确的顺序呈现(显然,因为它是按字母顺序而不是数字顺序)。此外,尝试

magick [1-n].jpg scan.pdf

似乎不适用于n> 9。在 MacOS(可能还有 Linux)上的 ImageMagick 中组合多个连续命名的文件的正确方法是什么?

imagemagick
  • 1 个回答
  • 34 Views
Martin Hope
pLumo
Asked: 2022-03-25 01:47:22 +0800 CST

将图像缩放到固定的目标像素大小

  • 0

无论输入大小或比率如何,我都想将 JPG 图像的大小减小到相同的总像素大小(例如 6MPx)。


当然mogrify或者convert可以调整大小:

这个 ...

mogrify -resize 3000x3000 file.jpg

...对于比例为 3:2 的图片,将为我提供 6MPx。

但这不适用于不寻常的比例,例如全景图。


Q: 如何使用mogrify/convert得到指定的目标像素大小?

images imagemagick
  • 1 个回答
  • 34 Views
Martin Hope
user1757774
Asked: 2022-03-21 10:44:24 +0800 CST

在 Linux 中调整图像大小

  • 1

我有各种高分辨率图像大小超过 6000 像素 x 4000 像素的文件夹。有些是 5000 像素 x 3000 像素,大小因文件夹而异。我想调整所有图像的大小以节省加载时间/处理/内存空间等资源。我想将所有图像保持在最小 3000x2000 最大 3500x2200 左右。我如何使用 imagemagick 批量执行此操作,替换原件。有人建议我在 ubuntu 上使用 imagemagick 和 morgify?

早些时候,当我有 Windows PC 时,我使用了 photosizer 软件。一张一张选择文件夹,然后用jpegMini软件处理图片。所以 5 mb 照片减小到 1.5 mb 左右。每个文件夹都包含不同分辨率的图像。这是一个耗时的过程。对于每个文件夹,我必须减少 fotosizer 的 % 以保持图像大小在 3000*2000 左右或多或少保持纵横比。

imagemagick
  • 2 个回答
  • 267 Views
Martin Hope
John Smith
Asked: 2020-03-09 07:38:35 +0800 CST

为什么我的 Xvfb 屏幕截图是黑色的并带有颜色痕迹(Ubuntu 16.04 LTS)

  • 2

我在 Google Cloud 中运行无头 Ubuntu 16.04 LTS。我需要在后台运行一个需要 GUI 的应用程序。我正在尝试使用 Xvfb 来允许程序运行,但由于程序需要一些 GUI 输入,我还需要截取屏幕截图以查看需要哪些输入。

但是,我无法截取屏幕截图。为了测试截屏过程,我安装并运行 firefox 导航到 google。我以两种方式截取屏幕截图,使用 scrot 和使用 imagemagick。两种方式都会导致黑色图像,其中包含谷歌主页的提示(见附图)。颜色和细节阻止使用屏幕截图来解释显示的内容。是什么导致这种缺乏细节,我该如何解决这个问题?

相关命令如下:

sudo apt-get install xvfb xorg xserver-xorg scrot imagemagick
Xvfb :1 &
export DISPLAY=:1
DISPLAY=:1 firefox https://www.google.com &
DISPLAY=:1 scrot
DISPLAY=:1 import -window root tmp_screenshot.png

在此处输入图像描述

ubuntu imagemagick
  • 1 个回答
  • 774 Views
Martin Hope
Dexter
Asked: 2019-07-16 03:31:01 +0800 CST

ImageMagick 识别不起作用

  • 0

我正在使用 Debian Buster 并尝试使用 ImageMagick。我已经通过编译这个官方页面中给出的源文件在我的系统上安装了 ImageMagick。identify -v给我以下,

Version: ImageMagick 7.0.8-53 Q16 x86_64 2019-07-15 https://imagemagick.org 
Copyright: © 1999-2019 ImageMagick Studio LLC
License: https://imagemagick.org/script/license.php Features: Cipher DPC HDRI OpenMP(4.5)  
Delegates (built-in):

但是,当我尝试查看其中一个原始文件的元数据时,它给了我以下错误

>> identify -verbose _MG_7227.CR2 
identify: unable to open image '/tmp/magick-21769M0_HHYUYw2MT.ppm': No such file or directory @ error/blob.c/OpenBlob/3497.

当我在一些 JPG 图像上使用它时,我收到了一些不同的错误消息

>> identify -verbose IMG_20181226_134152.jpg 
identify: no decode delegate for this image format `JPG' @ error/constitute.c/ReadImage/556.

谁能告诉我发生了什么?

debian imagemagick
  • 1 个回答
  • 1012 Views
Martin Hope
whitewings
Asked: 2019-02-12 17:30:42 +0800 CST

Imagemagick:使用现有安装安装 Jpeg Decode Delegate

  • 2

我从源代码安装了 ImageMagick 7.0.8-11 Q16 x86_64,但我不知道从源代码安装时不会自动包含解码委托。我应该安装了 ImageMagick 的二进制文件,其中包括 jpeg 解码委托。问题是我无法卸载 ImageMagick,因为许多其他程序都依赖它。那么有没有办法为现有的 ImageMagick 安装安装jpeg 解码委托?

相关信息:

Linux Mint 19 塔拉 64 位。

apt-cache policy imagemagick
imagemagick:
Installed: (none)
Candidate: 8:6.9.7.4+dfsg-16ubuntu6.4
Version table:
8:6.9.7.4+dfsg-16ubuntu6.4 500
500 http://mirror.atlantic.net/ubuntu bionic-updates/main amd64 Packages
500 http://security.ubuntu.com/ubuntu bionic-security/main amd64 Packages
8:6.9.7.4+dfsg-16ubuntu6.3 -1
100 /var/lib/dpkg/status
8:6.9.7.4+dfsg-16ubuntu6 500
500 http://mirror.atlantic.net/ubuntu bionic/main amd64 Packages

identify -version
Version: ImageMagick 7.0.8-11 Q16 x86_64 2018-09-18 https://www.imagemagick.org
Copyright: © 1999-2018 ImageMagick Studio LLC
License: https://www.imagemagick.org/script/license.php
Features: Cipher DPC HDRI OpenMP
Delegates (built-in): fontconfig freetype png x zlib
software-installation imagemagick
  • 1 个回答
  • 1175 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve