排他的論理和演算 (region ^ region)

Namespace: FVIL.Data
Assembly: FVILbasic (in FVILbasic.dll) Version: 3.1.0.0 (3.1.0.17)

Syntax

C#
public static CFviRegion operator ^(
	CFviRegion ope1,
	CFviRegion ope2
)
Visual Basic
Public Shared Operator Xor ( 
	ope1 As CFviRegion,
	ope2 As CFviRegion
) As CFviRegion

Parameters

ope1
Type: FVIL.Data..::..CFviRegion
左辺値
ope2
Type: FVIL.Data..::..CFviRegion
右辺値

Return Value

Type: CFviRegion
演算結果のリージョンオブジェクトを返します。

Remarks

リージョン間の排他的論理和演算(XOR)を行います。
左辺値の内容は更新されません。

処理に失敗した場合は例外を発行します。 例外の原因と発生位置を特定するには、発行された例外クラスの ErrorCode メンバと Function メンバを参照してください。
引数に null を指定した場合は System.NullReferenceException が発行されます。

エラーコード:

ErrorCode メンバ内容
51FVIL.ErrorCode.LICENSE_ERROR ライセンスキーが見つからない為、実行できません。 または、 FVIL._SetUp.InitVisionLibrary が実行されていません。
1FVIL.ErrorCode.FAILED_TO_ALLOCATEメモリ不足の為、処理に失敗しました。
11FVIL.ErrorCode.INVALID_PARAMETERリージョンが無効です。
12FVIL.ErrorCode.INVALID_OBJECTリージョンオブジェクトハンドルが無効です。

Examples

以下のようなリージョンを使用した処理を示します。

・リージョン1


・リージョン2


ソースコード:
C# Copy imageCopy
using System;
using System.Collections.Generic;
using System.Text;
using fvalgcli;    // FvPluginXXXX attribute requires fvalgcli

namespace User.SampleCode.Data
{
    public partial class Region
    {
        /// <summary>
        /// [リージョン構造クラス]
        /// 排他的論理和演算 (region ^ region)オペレータ
        /// </summary>
        [FvPluginExecute]
        public void ExclusiveOr()
        {
            try
            {
                // 1) インスタンスの準備.
                FVIL.Data.CFviRegion regionSrc1 = new FVIL.Data.CFviRegion();
                FVIL.Data.CFviRegion regionSrc2 = new FVIL.Data.CFviRegion();

                // 2) 処理対象リージョンの取り込み.
                regionSrc1.Load(Defs.TestImageDir + "\\palette_UC8_region_R.raw");
                regionSrc2.Load(Defs.TestImageDir + "\\palette_UC8_region_G.raw");

                // 3) 画像処理実行.
                FVIL.Data.CFviRegion regionDst = regionSrc1 ^ regionSrc2;

                // E) 処理結果画像の保存.
                regionDst.Save(Defs.ResultDir + "\\Region.ExclusiveOr.png");
            }
            catch (FVIL.CFviException ex)
            {
                Console.WriteLine(ex.Function + " : ErrorCode = " + ex.ErrorCode);
                throw ex;
            }
        }
    }
}


Visual Basic Copy imageCopy
Imports System.Collections.Generic
Imports System.Text
Imports fvalgcli
' FvPluginXXXX attribute requires fvalgcli
Namespace SampleCode.Data
    Public Partial Class Region
        ''' <summary>
        ''' [リージョン構造クラス]
        ''' 排他的論理和演算 (region ^ region)オペレータ
        ''' </summary>
        <FvPluginExecute> _
        Public Sub ExclusiveOr()
            Try
                ' 1) インスタンスの準備.
                Dim regionSrc1 As New FVIL.Data.CFviRegion()
                Dim regionSrc2 As New FVIL.Data.CFviRegion()

                ' 2) 処理対象リージョンの取り込み.
                regionSrc1.Load(Defs.TestImageDir & "\palette_UC8_region_R.raw")
                regionSrc2.Load(Defs.TestImageDir & "\palette_UC8_region_G.raw")

                ' 3) 画像処理実行.
                Dim regionDst As FVIL.Data.CFviRegion = regionSrc1 Xor regionSrc2

                ' E) 処理結果画像の保存.
                regionDst.Save(Defs.ResultDir & "\Region.ExclusiveOr.png")
            Catch ex As FVIL.CFviException
                Console.WriteLine(ex.[Function] & " : ErrorCode = " & ex.ErrorCode)
                Throw ex
            End Try
        End Sub
    End Class
End Namespace
【関数の結果】

Exceptions

ExceptionCondition
FVIL..::..CFviExceptionこの例外の原因については、上記のエラーコード表をご参照ください。

See Also