<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://en.formulasearchengine.com/index.php?action=history&amp;feed=atom&amp;title=Passive_heave_compensation</id>
	<title>Passive heave compensation - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://en.formulasearchengine.com/index.php?action=history&amp;feed=atom&amp;title=Passive_heave_compensation"/>
	<link rel="alternate" type="text/html" href="https://en.formulasearchengine.com/index.php?title=Passive_heave_compensation&amp;action=history"/>
	<updated>2026-05-04T03:24:51Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.0-wmf.28</generator>
	<entry>
		<id>https://en.formulasearchengine.com/index.php?title=Passive_heave_compensation&amp;diff=28275&amp;oldid=prev</id>
		<title>en&gt;Yobot: ISBN wrong syntax fixed using AWB (9585)</title>
		<link rel="alternate" type="text/html" href="https://en.formulasearchengine.com/index.php?title=Passive_heave_compensation&amp;diff=28275&amp;oldid=prev"/>
		<updated>2013-11-07T23:21:29Z</updated>

		<summary type="html">&lt;p&gt;ISBN wrong syntax fixed using &lt;a href=&quot;/index.php?title=Testwiki:AWB&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Testwiki:AWB (page does not exist)&quot;&gt;AWB&lt;/a&gt; (9585)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;In [[image processing]], a &amp;#039;&amp;#039;&amp;#039;kernel&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;convolution matrix&amp;#039;&amp;#039;&amp;#039;, or &amp;#039;&amp;#039;&amp;#039;mask&amp;#039;&amp;#039;&amp;#039; is a small [[Matrix (mathematics)|matrix]] useful for blurring, sharpening, embossing, edge-detection, and more. This is accomplished by means of [[Kernel (image processing)#Convolution|convolution]] between a kernel and an image.&lt;br /&gt;
&lt;br /&gt;
== Details ==&lt;br /&gt;
&lt;br /&gt;
Depending on the element values, a kernel can cause a wide range of effects.&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;6&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse:collapse;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Original&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | &amp;lt;math&amp;gt;&lt;br /&gt;
\begin{bmatrix}&lt;br /&gt;
0 &amp;amp; 0 &amp;amp; 0 \\&lt;br /&gt;
0 &amp;amp; 1 &amp;amp; 0 \\&lt;br /&gt;
0 &amp;amp; 0 &amp;amp; 0&lt;br /&gt;
\end{bmatrix}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
| [[File:Vd-Orig.png]]&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | &amp;#039;&amp;#039;&amp;#039;Edge-Detect&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | &amp;lt;math&amp;gt;&lt;br /&gt;
\begin{bmatrix}&lt;br /&gt;
1 &amp;amp;  0 &amp;amp; -1 \\&lt;br /&gt;
0 &amp;amp; 0 &amp;amp; 0 \\&lt;br /&gt;
-1 &amp;amp;  0 &amp;amp; 1&lt;br /&gt;
\end{bmatrix}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
| [[File:Vd-Edge1.png]]&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | &amp;lt;math&amp;gt;&lt;br /&gt;
\begin{bmatrix}&lt;br /&gt;
0 &amp;amp;  1 &amp;amp; 0 \\&lt;br /&gt;
1 &amp;amp; -4 &amp;amp; 1 \\&lt;br /&gt;
0 &amp;amp;  1 &amp;amp; 0&lt;br /&gt;
\end{bmatrix}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
| [[File:Vd-Edge2.png]]&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | &amp;lt;math&amp;gt;&lt;br /&gt;
\begin{bmatrix}&lt;br /&gt;
-1 &amp;amp;  -1 &amp;amp; -1 \\&lt;br /&gt;
-1 &amp;amp; 8 &amp;amp; -1 \\&lt;br /&gt;
-1 &amp;amp;  -1 &amp;amp; -1&lt;br /&gt;
\end{bmatrix}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
| [[File:Vd-Edge3.png]]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Sharpen&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | &amp;lt;math&amp;gt;&lt;br /&gt;
\begin{bmatrix}&lt;br /&gt;
0 &amp;amp; -1 &amp;amp; 0 \\&lt;br /&gt;
-1 &amp;amp; 5 &amp;amp; -1 \\&lt;br /&gt;
0 &amp;amp; -1 &amp;amp; 0&lt;br /&gt;
\end{bmatrix}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
| [[File:Vd-Sharp.png]]&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | &amp;#039;&amp;#039;&amp;#039;Blur&amp;#039;&amp;#039;&amp;#039;*&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | &amp;lt;math&amp;gt;&lt;br /&gt;
\begin{bmatrix}&lt;br /&gt;
1 &amp;amp;  2 &amp;amp; 1 \\&lt;br /&gt;
2 &amp;amp; 4 &amp;amp; 2 \\&lt;br /&gt;
1 &amp;amp;  2 &amp;amp; 1&lt;br /&gt;
\end{bmatrix}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
| [[File:Vd-Blur1.png]]&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | &amp;lt;math&amp;gt;&lt;br /&gt;
\begin{bmatrix}&lt;br /&gt;
1 &amp;amp;  1 &amp;amp; 1 \\&lt;br /&gt;
1 &amp;amp; 1 &amp;amp; 1 \\&lt;br /&gt;
1 &amp;amp;  1 &amp;amp; 1&lt;br /&gt;
\end{bmatrix}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
| [[File:Vd-Blur2.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;must be [[Kernel (image processing)#Normalization|normalized]]&lt;br /&gt;
&lt;br /&gt;
The above are just a few examples of effects achievable by convolving kernels and images.&lt;br /&gt;
&lt;br /&gt;
=== Origin ===&lt;br /&gt;
&lt;br /&gt;
The origin is the position of the kernel which is above (conceptually) the current output pixel. This could be outside of the actual kernel, though usually it corresponds to one of the kernel elements. For a symmetric kernel, the origin is usually the center element.&lt;br /&gt;
&lt;br /&gt;
== Convolution ==&lt;br /&gt;
&lt;br /&gt;
[[File:3D Convolution Animation.gif|frame|3D Convolution Animation]]&lt;br /&gt;
&lt;br /&gt;
This is a form of [[Convolution|mathematical convolution]].&lt;br /&gt;
&lt;br /&gt;
The values of a given pixel in the output image are calculated by multiplying each kernel value by the corresponding input image pixel values. This can be described algorithmically with the following pseudo-code:&lt;br /&gt;
&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;for each&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;image row&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;in&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;output image&amp;#039;&amp;#039;:&lt;br /&gt;
    &amp;#039;&amp;#039;&amp;#039;for each&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;pixel&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;in&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;image row&amp;#039;&amp;#039;:&lt;br /&gt;
 &lt;br /&gt;
       &amp;#039;&amp;#039;&amp;#039;set&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;running total&amp;#039;&amp;#039; to zero&lt;br /&gt;
 &lt;br /&gt;
       &amp;#039;&amp;#039;&amp;#039;for each&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;kernel row&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;in&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;kernel&amp;#039;&amp;#039;:&lt;br /&gt;
          &amp;#039;&amp;#039;&amp;#039;for each&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;element&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;in&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;kernel row&amp;#039;&amp;#039;:&lt;br /&gt;
 &lt;br /&gt;
             &amp;#039;&amp;#039;&amp;#039;multiply&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;element value&amp;#039;&amp;#039; by corresponding* &amp;#039;&amp;#039;pixel value&amp;#039;&amp;#039;&lt;br /&gt;
             &amp;#039;&amp;#039;&amp;#039;add&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;result&amp;#039;&amp;#039; to &amp;#039;&amp;#039;running total&amp;#039;&amp;#039;&lt;br /&gt;
 &lt;br /&gt;
       &amp;#039;&amp;#039;&amp;#039;set&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;output image pixel&amp;#039;&amp;#039; to &amp;#039;&amp;#039;value of running total&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;corresponding input image pixels are found relative to the kernel&amp;#039;s origin.&lt;br /&gt;
If the kernel is not symmetric, it has to be flipped both around it&amp;#039;s horizontal and vertical axis before calculating the convolution as above.&amp;lt;ref&amp;gt;http://www.songho.ca/dsp/convolution/convolution2d_example.html&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Edge Handling ===&lt;br /&gt;
&lt;br /&gt;
[[File:Extend Edge-Handling.png|thumb|Extend Edge-Handling]]&lt;br /&gt;
&lt;br /&gt;
Kernel convolution usually requires values from pixels outside of the image boundaries. There are a variety of methods for handling image edges.&lt;br /&gt;
&lt;br /&gt;
; Extend &lt;br /&gt;
: The nearest border pixels are conceptually extended as far as necessary to provide values for the convolution. Corner pixels are extended in 90° wedges. Other edge pixels are extended in lines.&lt;br /&gt;
; Wrap&lt;br /&gt;
:The image is conceptually wrapped (or tiled) and values are taken from the opposite edge or corner.&lt;br /&gt;
; Crop&lt;br /&gt;
: Any pixel in the output image which would require values from beyond the edge is skipped. This method can result in the output image being slightly smaller, with the edges having been cropped.&lt;br /&gt;
&lt;br /&gt;
=== Normalization ===&lt;br /&gt;
&lt;br /&gt;
Dividing each element in the kernel by the sum of all the elements in the kernel. Normalization ensures that the pixel values in the output image are of the same relative magnitude as those in the input image.&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* [http://developer.apple.com/library/IOs/documentation/Performance/Conceptual/vImage/ConvolutionOperations/ConvolutionOperations.html vImage Programming Guide: Performing Convolution Operations]&lt;br /&gt;
* [http://williamson-labs.com/convolution-2d.htm Image Processing using  2D-Convolution]&lt;br /&gt;
* [http://docs.gimp.org/en/plug-in-convmatrix.html GNU Image Manipulation Program - User Manual - 8.2. Convolution Matrix]&lt;br /&gt;
* [http://matlabtricks.com/post-5/3x3-convolution-kernels-with-online-demo#demo Interactive Demonstration of 3x3 Convolution Kernels]&lt;br /&gt;
&lt;br /&gt;
== References == &lt;br /&gt;
{{reflist}}&lt;br /&gt;
* Ludwig, Jamie (n.d.), &amp;quot;Image Convolution&amp;quot;. Portland State University. http://web.pdx.edu/~jduh/courses/Archive/geog481w07/Students/Ludwig_ImageConvolution.pdf&lt;br /&gt;
* Lecarme, Olivier; Delvare, Karine (January 2013). &amp;#039;&amp;#039;The Book of GIMP: A Complete Guide to Nearly Everything&amp;#039;&amp;#039;. No Starch Press, p.&amp;amp;nbsp;429, ISBN 978-1593273835.&lt;br /&gt;
* Gumster, Jason van; Shimonski, Robert (March 2012). &amp;#039;&amp;#039;GIMP Bible&amp;#039;&amp;#039;. Wiley, pp.&amp;amp;nbsp;438–442, ISBN 978-0470523971.&lt;br /&gt;
* Stockman, George C.; Shapiro, Linda G. (February 2001). &amp;#039;&amp;#039;Computer Vision&amp;#039;&amp;#039;. Prentice Hall, pp.&amp;amp;nbsp;53–54, ISBN 978-0130307965.&lt;br /&gt;
&lt;br /&gt;
[[Category:Image processing]]&lt;br /&gt;
[[Category:Feature detection]]&lt;/div&gt;</summary>
		<author><name>en&gt;Yobot</name></author>
	</entry>
</feed>