假设我有一个名为source.png的摄像机图像,我想分割通道,仿射扩展每个通道不同的系数,并重新组合到target.png而不创建中间文件?
我正在尝试这样的事情:
convert source.png -colorspace RGB -separate {expansions} -combine target.png
我尝试了几个小时尝试从imagemagick网站获取提示 以及网络上的其他来源,但我没有让它发挥作用。
有人能告诉我一个独立频道处理的简单例子吗?
Mark Setchell给了我足够的实验和成功的基础! 解答:
convert Home.png -write MPR:orig +delete \ \( MPR:orig -separate -delete 1,2 -affine -1.00,0,0,-1.00,0,0 -transform -gravity Center -extent 180x180 \) \ \( MPR:orig -separate -delete 0,2 -affine -1.06,0,0,-1.06,0,0 -transform -gravity Center -extent 180x180 \) \ \( MPR:orig -separate -delete 0,1 -affine -1.31,0,0,-1.31,0,0 -transform -gravity Center -extent 180x180 \) \ -combine Home.imaffine.png
谢谢。
答案 0 :(得分:2)
更新了答案
由于我下面的原始答案似乎对您没有用,也许您会尝试这种替代方法。我将加载您的图像一次,将其保存在12:00
(存储器程序寄存器)中,这是一个命名的RAM块,并重新使用它来获取每个通道:
MPR
原始答案
无需使用convert image.jpg -write MPR:orig +delete \
\( MPR:orig -separate -delete 1,2 -affine <red transform> \) \
\( MPR:orig -separate -delete 0,2 -affine <green tranform> \) \
\( MPR:orig -separate -delete 0,1 -affine <blue transform> \) \
-combine result.jpg
,只需使用-separate
运算符将变换应用于所选频道:
-channel
如果在将扭曲应用于各个频道后,您希望继续将运营商应用于所有频道,则可以使用convert image.png -colorspace RGB \
-channel R -affine <RedTransform> \
-channel G -affine <GreenTransform> \
-channel B -affine <BlueTransform> \
result.png
或+channel
确保后续运营商再次应用于所有频道。