Difference between revisions of "Function:Multiply"

From CUVI Wiki
 
(4 intermediate revisions by the same user not shown)
Line 1: Line 1:
__NOTOC__
__NOTOC__
Multiplies image with another image or constant value(s).
Multiplies image with another image or constant value(s).
===Function===
====Function====
{|
{|
|style="font-size:150%;"|
|style="font-size:100%;"|
<syntaxhighlight lang="cpp">
<syntaxhighlight lang="cpp">
CuviStatus multiply(const CuviImage& src1,
CuviStatus multiply(const CuviImage& src1,
Line 21: Line 21:
</syntaxhighlight>
</syntaxhighlight>
|}
|}
===Parameters===


====Parameters====
{|
|style="font-size:75%;"|
{|class="wikitable"
{|class="wikitable"
|-
|-
Line 44: Line 46:
| const CuviStream&
| const CuviStream&
| GPU stream ID for execution
| GPU stream ID for execution
 
|}
|}
|}


===Image Type Support===
====Image Type Support====
 
{|
|style="font-size:75%;"|
{| class="wikitable"
{| class="wikitable"
|-
|-
Line 110: Line 113:
| 16u
| 16u
| 32f
| 32f
|}
|}
|}


===Sample===
====Sample====
{|
 
|-
[[File:MultiplyIn1.png|none|frame|First Input Image (8-bit)]]
|[[File:MultiplyIn1.png|frame|First Input Image (8-bit)]]
<br/>
|[[File:MultiplyIn2.png|frame|Second Input Image (8-bit)]]
[[File:MultiplyIn2.png|none|frame|Second Input Image (8-bit)]]
|-
<br/>
|[[File:MultiplyOut.png|frame| Resultant Image (16-bit)]]
[[File:MultiplyOut.png|none|frame| Resultant Image (16-bit)]]
|}
<br/>


===Example===
====Example====
{|
{|
|style="font-size:150%;"|
|style="font-size:100%;"|
<syntaxhighlight lang="cpp">
<syntaxhighlight lang="cpp">



Latest revision as of 12:19, 18 October 2022

Multiplies image with another image or constant value(s).

Function

CuviStatus multiply(const CuviImage& src1,
                    const CuviImage& src2,
                    CuviImage& dst,
                    const CuviStream& stream = CuviStream());

CuviStatus multiply(const CuviImage& src,
                    const CuviScalar& values,
                    CuviImage& dst,
                    const CuviStream& stream = CuviStream());

CuviStatus multiply(const CuviImage& src,
                    const Cuvi64f value,
                    CuviImage& dst,
                    const CuviStream& stream = CuviStream());

Parameters

Name Type Description
src1 const CuviImage& First Input Image
src2 const CuviImage& Second Input Image
dst CuviImage& Resultant Image
stream const CuviStream& GPU stream ID for execution

Image Type Support

Input 1 Input 2 Output
8u 8u 8u
16u 16u 16u
32f 32f 32f
8u 8u 16u
8u 8u 32f
16u 16u 32f
8u 16u 16u
16u 8u 16u
8u 32f 32f
32f 8u 32f
8u 16u 32f
16u 8u 32f
16u 32f 32f
32f 16u 32f

Sample

First Input Image (8-bit)


Second Input Image (8-bit)


Resultant Image (16-bit)


Example

CuviImage gimg1 = cuvi::io::loadImage(path);
CuviImage gimg2 = cuvi::io::loadImage(path);

CuviImage gout;

//Multiply
cuvi::arithmeticLogical::multiply(gimg1,gimg2,gout);

//Multiply with a constant value
gout *= 4;

//Multiply each channel with a different value
gout *= CuviScalar(3,5,6);