凸集上投影

the following content is from https://cstheory.wordpress.com/2010/08/23/projections-onto-a-convex-body/#more-203.

 

Projections onto a Convex Body

Given a point {x} \in {​{\bf R}^d} and an affine subspace {H \neq {\bf R}^d}, the projection of {x} onto {H} is the point {P_H(x)} such that,

\displaystyle \begin{array}{rcl} \vert \vert x - P_H(x) \vert \vert = \min \{ \vert \vert x y \vert \vert ~ \mid y ~ \in H \} \end{array} .

One can obviously define other notions of projection but the above is probably the most commonly used in geometry. If {x \notin H} then the projected point {P_H(x)} is the unique point in {H} such that the vector {P_H(x) - x} is orthogonal to {H}. Also is well known that projecting any segment to an affine subspace can only shrink its length. The proofs of these facts are easy to see. But in fact these facts are just corollaries of the following two results.

Given any nonempty closed convex set {C \subseteq {\bf R}^d} and a point {x \in {\bf R}^d}, there is a unique point {P_C(x) \in C} such that,

 

\displaystyle \begin{array}{rcl} \vert \vert x - P_C(x) \vert \vert = \min \{ \vert \vert x - y \vert \vert ~ \mid ~ y \in C\} \end{array} .

and,

Let {C} be a nonempty closed convex set. The mapping {P_C : {\bf R}^d \rightarrow C} is a contraction i.e. for any {x,y \in {\bf R}^d} we have,

 

\displaystyle \begin{array}{rcl} \vert \vert P_C(x) - P_C(y) \vert \vert \leq \vert \vert x - y \vert \vert \end{array}

Applying these results to affine spaces (which are nonempty closed convex sets) yields the results mentioned earlier. This projection that maps x to P_C(x) is known as the metric projection. The proofs of these facts are in order.

Proof: First we show that the minimum distance to {C} is indeed obtained. This is easy and the details are as follows. Since {C} is nonempty there is some point {y \in C}. Let {l} denote {\vert \vert x - y \vert \vert}. Clearly a closest point to {x} can only lie in {C \cap B(x,l)} where {B(x,l)}denotes a closed ball of radius {l} with center {x}. But {C \cap B(x,l)} is a closed and bounded set and is therefore compact. It is also nonempty. The function {f(p)} defined for {p \in C \cap B(x,l)} as {f(p) = \vert \vert p - x \vert \vert}is a continuous function on a compact set and attains its minimum at some point {P_C(x)}.

Next we prove the point {P_C(x)} where {f} attains minimum, is unique. If {z \in C} is another point at which {\vert \vert x - z \vert \vert = \vert \vert x - P_C(x) \vert \vert} then in the triangle {xP_C(x)z}, which has two equal sides, the perpendicular from {x} onto segment {P_C(x)z} is clearly shorter than the length {\vert \vert x - z \vert \vert}. However the base of this perpendicular lies on the segment itself. By convexity of {C} the entire segment is in {C} and thus we have found a point in {C} closer to {x} than {P_C(x)} which is a contradiction.

Next we prove that the metric projection is a contraction.

Proof: Let the points {x,y} be projected to {P_C(x)} and {P_C(y)}respectively and assume {P_C(x) \neq P_C(y)}. Consider the hyperplanes {H_x, H_y} through {P_C(x),P_C(y)} that are orthogonal to the vector {P_C(x) - P_C(y)}. See figure below.

The main observation is that x must lie on the other side of H_x as P_C(y). If {x} lies on the same side of {H_x} as {P_C(y)} then one can always find a point on the segment {(P_C(x) P_C(y)]} closer to {x} than {P_C(x)} which would contradict that {P_C(x)} is the closest point to {x} in {C}. Similarly {y} cannot lie on same side of {H_y} as {P_C(x)}. Thus {\vert \vert x - y \vert \vert} is at least the distance between {H_x} and {H_y} which is {\vert \vert P_C(x) - P_C(y) \vert \vert}.

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
凸集投影法(Convex Set Projection)是一种用于图像超分辨率重建的方法,其代码可以使用MATLAB编写。 以下是MATLAB代码的一个示例,以实现凸集投影法的图像超分辨率重建: ```matlab % 图像超分辨率重建的凸集投影法 % 假设初始低分辨率图像为LR,超分辨率重建的高分辨率图像为HR % 读取初始低分辨率图像 LR = imread('low_resolution_image.jpg'); % 定义超分辨率重建的高分辨率图像的尺寸 HR_width = size(LR, 2) * 2; % 假设需要将低分辨率图像宽度放大两倍 HR_height = size(LR, 1) * 2; % 假设需要将低分辨率图像高度放大两倍 % 创建超分辨率重建的高分辨率图像的初始估计 HR = imresize(LR, [HR_height, HR_width]); % 使用双线性插值将低分辨率图像放大到目标尺寸 % 设置迭代次数和步长 iterations = 100; % 迭代次数 step_size = 0.1; % 步长 % 迭代优化超分辨率重建的高分辨率图像 for i = 1:iterations % 使用一些超分辨率重建算法更新高分辨率图像的估计 % 计算梯度 gradient = compute_gradient(HR); % 更新高分辨率图像的估计 HR = HR - step_size * gradient; % 将高分辨率图像投影凸集 HR = project_to_convex_set(HR); % 可以加入其他约束条件或正则化项 % 显示当前迭代的结果 imshow(HR); title(['Iteration ', num2str(i)]); drawnow; end % 显示最终的超分辨率重建的高分辨率图像 imshow(HR); title('Final Result'); % 保存最终的超分辨率重建的高分辨率图像 imwrite(HR, 'super_resolution_image.jpg'); ``` 这段代码通过迭代优化高分辨率图像的估计,保证更新后的图像满足凸集的约束条件,以实现图像的超分辨率重建。在迭代过程中,可以根据需要加入其他约束条件或正则化项,以进一步改善重建效果。 请注意,上述代码中的`compute_gradient`和`project_to_convex_set`函数需要根据具体的问题和算法进行定义和实现。根据不同的算法和应用场景,这些函数的具体实现方式也可能有所不同。因此,需要根据实际情况对代码进行相应的调整和修改。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值