こんにちは。
TextureRenderTarget2D.cpp内のConstructTexture2Dの実装を見てみると、内部でNewObjectをしており、それにInOuterが使われているようです。NewObjectのOuterにはデフォルト引数があり、その記述を真似するのが最も簡単な方法かと思います。つまり、
rt2d->ConstructTexture2D((UObject*)GetTransientPackage(),
FString(TEXT("MatTex")), RF_NoFlags);
これで例外が出ないことを確認しました。
または、BlueprintFunctionLibraryを用いたstatic関数として実装しているなら、world context objectを引数にとり、それをInOuterとして与えるのもよいかもしれません。次のように宣言すれば、worldContextObject_はBP上でピンが隠蔽されます(個人的にはこちらの方が好きです)。
UFUNCTION(BlueprintCallable, Category = WrappedOpenCV, meta = (HidePin = "worldContextObject_", DefaultToSelf = "worldContextObject_"))
static void ConvertMat(UObject* worldContextObject_, class UTextureRenderTarget2D* rt2d);