最近我开始研究反卷积算法并满足以下采集模型:
其中f是原始(潜在)图像,g是输入(观察)图像,h是点扩散函数(退化核),n是随机加性噪声,*是卷积算子.如果我们知道g和h,那么我们可以使用Richardson-Lucy算法恢复f:
哪里 ,(W,H)是h的矩形支撑的大小,乘法和除法是逐点的.很简单,用C++编写代码,所以我就是这么做的.结果表明
近似于f,而i小于m,然后它开始迅速衰减.因此,只需要在此m处停止算法- 最令人满意的迭代.
如果点扩散函数g也是未知的,则认为该问题是盲目的,并且可以应用Richardson-Lucy算法的修改:

对于f的初始猜测,我们可以像以前那样取g,并且对于h的初始猜测,我们可以采用平凡的PSF,或任何看起来类似于观察到的图像退化的简单形式.该算法也适用于模拟数据.
现在我考虑使用以下采集模型的多帧盲解卷积问题:
有没有办法开发Richardson-Lucy算法来解决这个公式中的问题?如果不是,是否有任何其他迭代过程来恢复f,那将不会比以前复杂得多?
algorithm signal-processing image-processing inverse deconvolution
我的目标是确定我拥有的jpeg图像的压缩参数.正如我从这个答案中所理解的那样,可以使用ImageMagick功能标识.我从官方网站下载并安装了ImageMagick-7.0.2-7-Q16-x64-dll.exe.现在,我有一个名为ImageMagick Display的GUI应用程序似乎没用.我在哪里可以找到一个IM命令行来输入:
identify -format '%Q' yourimage.jpg
Run Code Online (Sandbox Code Playgroud) 我有一个由现实生产问题引起的算法问题.
设置.空的冰淇淋甜筒随机分布在移动的传送带上.配料设备有一个软管,可以在一定范围内在带上方移动(远小于带的长度).为了填充空锥体,将软管放置在锥体的正上方并锁定在其上一段时间直到填充过程结束.因此,这意味着在填充过程中,锥体必须保留在软管管道到达区域中.完成后,软管可以移动到另一个锥体.显然,如果速度不够大并且填充过程需要一些时间,如果锥体足够多且不方便放置,则系统将错过一些锥体.所以问题是通过预先安排填充顺序来尽可能多地填充锥体.
正式我们有输入:
U - 皮带的速度
V - 软管的速度
W - 皮带宽度
L - 腰带的长度
P - 软管到达区域的长度
T - 灌装过程的时间
锥体 - 皮带上锥体的坐标数组
理想情况下,输出是连续填充的锥体列表,以确保填充锥体的最大数量.或者至少估计可能填充的锥体的最大数量.
任何有关如何解决这个问题的建议将不胜感激!
根据此答案,在C ++中从概念上类似于接口的方式声明类的方法如下:
class IDemo
{
public:
virtual ~IDemo() {}
virtual void OverrideMe() = 0;
};
Run Code Online (Sandbox Code Playgroud)
但是,当我这样做时,会收到警告:'IDemo' has no out-of-line virtual method definitions; its vtable will be emitted in every translation unit。是否有适当的方法在项目中使用此类接口而不用这些vtable污染每个翻译单元?
algorithm ×2
c++ ×1
image ×1
imagemagick ×1
inheritance ×1
interface ×1
inverse ×1
jpeg ×1
optimization ×1
pure-virtual ×1
windows ×1