diff --git a/.github/workflows/docfx.yml b/.github/workflows/docfx.yml
index bf06bee66..46dee2e8c 100644
--- a/.github/workflows/docfx.yml
+++ b/.github/workflows/docfx.yml
@@ -3,7 +3,7 @@ name: DocFX
on:
push:
branches:
- - master
+ - main
workflow_dispatch:
jobs:
diff --git a/.github/workflows/linux-arm.yml b/.github/workflows/linux-arm.yml
index 72a0b8079..4a51c5c80 100644
--- a/.github/workflows/linux-arm.yml
+++ b/.github/workflows/linux-arm.yml
@@ -5,11 +5,11 @@ on:
types: [synchronize, opened]
push:
branches:
- - master
+ - main
env:
DEBIAN_FRONTEND: noninteractive
- OPENCV_VERSION: 4.7.0
+ OPENCV_VERSION: 4.8.0
jobs:
build:
@@ -31,7 +31,7 @@ jobs:
--output=type=docker \
--platform=linux/arm/v7 \
--build-arg OPENCV_VERSION \
- ./docker/ubuntu22-dotnet6-opencv4.7.0
+ ./docker/ubuntu22-dotnet6-opencv4.8.0
- name: Extract build files from Docker instance
run: |
diff --git a/.github/workflows/macos10.yml.disabled b/.github/workflows/macos10.yml.disabled
index 5ac7bd546..6335c77ca 100644
--- a/.github/workflows/macos10.yml.disabled
+++ b/.github/workflows/macos10.yml.disabled
@@ -5,11 +5,11 @@ on:
types: [synchronize, opened]
push:
branches:
- - master
+ - main
env:
DEBIAN_FRONTEND: noninteractive
- OPENCV_VERSION: 4.7.0
+ OPENCV_VERSION: 4.8.0
jobs:
build:
diff --git a/.github/workflows/publish_nuget.yml b/.github/workflows/publish_nuget.yml
index 2f6533617..64ff2f332 100644
--- a/.github/workflows/publish_nuget.yml
+++ b/.github/workflows/publish_nuget.yml
@@ -31,12 +31,12 @@ jobs:
workflow: linux-arm.yml
name: artifacts_linux_arm
- - name: Download macos artifact
- uses: dawidd6/action-download-artifact@v2
- with:
- github_token: ${{secrets.GITHUB_TOKEN}}
- workflow: macos10.yml
- name: artifacts_macos_10
+ #- name: Download macos artifact
+ # uses: dawidd6/action-download-artifact@v2
+ # with:
+ # github_token: ${{secrets.GITHUB_TOKEN}}
+ # workflow: macos10.yml
+ # name: artifacts_macos_10
- name: Download wasm artifact
uses: dawidd6/action-download-artifact@v2
diff --git a/.github/workflows/ubuntu20.yml b/.github/workflows/ubuntu20.yml
index 9f7b27d7a..30b7d2812 100644
--- a/.github/workflows/ubuntu20.yml
+++ b/.github/workflows/ubuntu20.yml
@@ -5,11 +5,11 @@ on:
types: [synchronize, opened]
push:
branches:
- - master
+ - main
env:
DEBIAN_FRONTEND: noninteractive
- OPENCV_VERSION: 4.7.0
+ OPENCV_VERSION: 4.8.0
OPENCV_CACHE_VERSION: 1
jobs:
diff --git a/.github/workflows/wasm.yml b/.github/workflows/wasm.yml
index 1df4cfa91..b1f2f6dd9 100644
--- a/.github/workflows/wasm.yml
+++ b/.github/workflows/wasm.yml
@@ -5,11 +5,11 @@ on:
types: [synchronize, opened]
push:
branches:
- - master
+ - main
env:
DEBIAN_FRONTEND: noninteractive
- OPENCV_VERSION: 4.7.0
+ OPENCV_VERSION: 4.8.0
EM_VERSION: 3.1.32
EM_CACHE_FOLDER: 'emsdk-cache'
diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml
index fa423b868..f686d186f 100644
--- a/.github/workflows/windows.yml
+++ b/.github/workflows/windows.yml
@@ -5,10 +5,10 @@ on:
types: [synchronize, opened]
push:
branches:
- - master
+ - main
env:
- OPENCV_VERSION: 4.7.0
+ OPENCV_VERSION: 4.8.0
jobs:
build:
diff --git a/OpenCvSharp.sln.DotSettings b/OpenCvSharp.sln.DotSettings
index 9ff420506..a14671ed8 100644
--- a/OpenCvSharp.sln.DotSettings
+++ b/OpenCvSharp.sln.DotSettings
@@ -64,7 +64,9 @@
True
True
+ True
True
+ True
True
True
True
@@ -88,6 +90,7 @@
True
True
True
+ True
True
True
True
@@ -134,6 +137,7 @@
True
True
True
+ True
True
True
True
diff --git a/docker/ubuntu18-dotnetcore3.1-opencv4.5.3/Dockerfile b/docker/ubuntu18-dotnetcore3.1-opencv4.5.3/Dockerfile
deleted file mode 100644
index c2a46a59f..000000000
--- a/docker/ubuntu18-dotnetcore3.1-opencv4.5.3/Dockerfile
+++ /dev/null
@@ -1,148 +0,0 @@
-FROM mcr.microsoft.com/dotnet/sdk:3.1-focal
-ENV DEBIAN_FRONTEND=noninteractive
-ARG OPENCV_VERSION=4.5.3
-
-WORKDIR /
-
-# Install opencv dependencies
-RUN apt-get update && apt-get -y install --no-install-recommends \
- apt-transport-https \
- software-properties-common \
- wget \
- unzip \
- ca-certificates \
- build-essential \
- cmake \
- git \
- libtbb-dev \
- libatlas-base-dev \
- libgtk2.0-dev \
- libavcodec-dev \
- libavformat-dev \
- libswscale-dev \
- libdc1394-22-dev \
- libxine2-dev \
- libv4l-dev \
- libtheora-dev \
- libvorbis-dev \
- libxvidcore-dev \
- libopencore-amrnb-dev \
- libopencore-amrwb-dev \
- libavresample-dev \
- x264 \
- libtesseract-dev \
- libgdiplus \
- && apt-get -y clean \
- && rm -rf /var/lib/apt/lists/*
-
-# Setup opencv and opencv-contrib source
-RUN wget https://github.com/opencv/opencv/archive/${OPENCV_VERSION}.zip && \
- unzip ${OPENCV_VERSION}.zip && \
- rm ${OPENCV_VERSION}.zip && \
- mv opencv-${OPENCV_VERSION} opencv && \
- wget https://github.com/opencv/opencv_contrib/archive/${OPENCV_VERSION}.zip && \
- unzip ${OPENCV_VERSION}.zip && \
- rm ${OPENCV_VERSION}.zip && \
- mv opencv_contrib-${OPENCV_VERSION} opencv_contrib
-
-# Build OpenCV
-RUN cd opencv && mkdir build && cd build && \
- cmake \
- -D OPENCV_EXTRA_MODULES_PATH=/opencv_contrib/modules \
- -D CMAKE_BUILD_TYPE=RELEASE \
- -D BUILD_SHARED_LIBS=OFF \
- -D ENABLE_CXX11=ON \
- -D BUILD_EXAMPLES=OFF \
- -D BUILD_DOCS=OFF \
- -D BUILD_PERF_TESTS=OFF \
- -D BUILD_TESTS=OFF \
- -D BUILD_JAVA=OFF \
- -D BUILD_opencv_app=OFF \
- -D BUILD_opencv_barcode=OFF \
- -D BUILD_opencv_java_bindings_generator=OFF \
- -D BUILD_opencv_js_bindings_generator=OFF \
- -D BUILD_opencv_python_bindings_generator=OFF \
- -D BUILD_opencv_python_tests=OFF \
- -D BUILD_opencv_ts=OFF \
- -D BUILD_opencv_js=OFF \
- -D BUILD_opencv_bioinspired=OFF \
- -D BUILD_opencv_ccalib=OFF \
- -D BUILD_opencv_datasets=OFF \
- -D BUILD_opencv_dnn_objdetect=OFF \
- -D BUILD_opencv_dpm=OFF \
- -D BUILD_opencv_fuzzy=OFF \
- -D BUILD_opencv_gapi=OFF \
- -D BUILD_opencv_intensity_transform=OFF \
- -D BUILD_opencv_mcc=OFF \
- -D BUILD_opencv_objc_bindings_generator=OFF \
- -D BUILD_opencv_rapid=OFF \
- -D BUILD_opencv_reg=OFF \
- -D BUILD_opencv_stereo=OFF \
- -D BUILD_opencv_structured_light=OFF \
- -D BUILD_opencv_surface_matching=OFF \
- -D BUILD_opencv_videostab=OFF \
- -D BUILD_opencv_wechat_qrcode=ON \
- -D WITH_GSTREAMER=OFF \
- -D WITH_ADE=OFF \
- -D OPENCV_ENABLE_NONFREE=ON \
- .. && make -j$(nproc) && make install && ldconfig
-
-# Download OpenCvSharp
-RUN git clone https://github.com/shimat/opencvsharp.git && cd opencvsharp
-
-# Install the Extern lib.
-RUN mkdir /opencvsharp/make && cd /opencvsharp/make && \
- cmake -D CMAKE_INSTALL_PREFIX=/opencvsharp/make /opencvsharp/src && \
- make -j$(nproc) && make install && \
- rm -rf /opencv && \
- rm -rf /opencv_contrib && \
- mkdir /artifacts && \
- cp /opencvsharp/make/OpenCvSharpExtern/libOpenCvSharpExtern.so /artifacts/
-
-# Test OpenCvSharpExtern
-RUN cp artifacts/libOpenCvSharpExtern.so /usr/lib/ && \
- echo "\n\
-#include \n\
-int core_Mat_sizeof(); \n\
-int main(){ \n\
- int i = core_Mat_sizeof(); \n\
- printf(\"sizeof(Mat) = %d\", i); \n\
- return 0; \n\
-}" > /test.c && \
- gcc -I./ -L./ test.c -o test -lOpenCvSharpExtern && \
- LD_LIBRARY_PATH=. ./test && \
- rm -f /test*
-
-# Install Build the C# part of OpenCvSharp
-#RUN cd /opencvsharp/src/OpenCvSharp && \
-# dotnet build -c Release -f netstandard2.1 && \
-# cd /opencvsharp/src/OpenCvSharp.Blob && \
-# dotnet build -c Release -f netstandard2.1 && \
-# cd /opencvsharp/src/OpenCvSharp.Extensions && \
-# dotnet build -c Release -f netstandard2.1 && \
-# cp /opencvsharp/src/OpenCvSharp/bin/Release/netstandard2.1/* /artifacts/ && \
-# cp /opencvsharp/src/OpenCvSharp.Blob/bin/Release/netstandard2.1/* /artifacts/ && \
-# cp /opencvsharp/src/OpenCvSharp.Extensions/bin/Release/netstandard2.1/* /artifacts/
-
-# Test OpenCvSharp
-#RUN dotnet test /opencvsharp/test/OpenCvSharp.Tests/OpenCvSharp.Tests.csproj -c Release -f netcoreapp3.1 --runtime ubuntu.18.04-x64 --logger "trx;LogFileName=test-results.trx" < /dev/null
-
-RUN rm -rf /opencvsharp
-
-# Simple console app test using NuGet
-#RUN dotnet new console -f netcoreapp3.1 -o "ConsoleApp01" && cd /ConsoleApp01 && \
-# echo "\n\
-#using System; \n\
-#using OpenCvSharp; \n\
-#class Program{ \n\
-# static void Main(){ \n\
-# Console.WriteLine(Cv2.GetTickCount()); \n\
-# using var mat = new Mat(1, 1, MatType.CV_8UC1); \n\
-# Console.WriteLine(mat.CvPtr); \n\
-# } \n\
-#}" > Program.cs && \
-# dotnet add package OpenCvSharp4 && \
-# dotnet run && \
-# rm -rf /ConsoleApp01
-
-#RUN ldd /artifacts/libOpenCvSharpExtern.so
diff --git a/docker/ubuntu20-dotnet6sdk-opencv4.5.3/Dockerfile b/docker/ubuntu20-dotnet6sdk-opencv4.5.3/Dockerfile
deleted file mode 100644
index 6c057eb32..000000000
--- a/docker/ubuntu20-dotnet6sdk-opencv4.5.3/Dockerfile
+++ /dev/null
@@ -1,160 +0,0 @@
-FROM mcr.microsoft.com/dotnet/aspnet:6.0-focal as builder
-
-ENV DEBIAN_FRONTEND=noninteractive
-ENV OPENCV_VERSION=4.5.3
-
-WORKDIR /
-
-# Install opencv dependencies
-RUN apt-get update && apt-get -y install --no-install-recommends \
- apt-transport-https \
- software-properties-common \
- wget \
- unzip \
- ca-certificates \
- build-essential \
- cmake \
- git \
- libtbb-dev \
- libatlas-base-dev \
- libgtk2.0-dev \
- libavcodec-dev \
- libavformat-dev \
- libswscale-dev \
- libdc1394-22-dev \
- libxine2-dev \
- libv4l-dev \
- libtheora-dev \
- libvorbis-dev \
- libxvidcore-dev \
- libopencore-amrnb-dev \
- libopencore-amrwb-dev \
- libavresample-dev \
- x264 \
- libtesseract-dev \
- libgdiplus \
- && apt-get -y clean \
- && rm -rf /var/lib/apt/lists/*
-
-# Setup opencv and opencv-contrib source
-RUN wget https://github.com/opencv/opencv/archive/${OPENCV_VERSION}.zip && \
- unzip ${OPENCV_VERSION}.zip && \
- rm ${OPENCV_VERSION}.zip && \
- mv opencv-${OPENCV_VERSION} opencv && \
- wget https://github.com/opencv/opencv_contrib/archive/${OPENCV_VERSION}.zip && \
- unzip ${OPENCV_VERSION}.zip && \
- rm ${OPENCV_VERSION}.zip && \
- mv opencv_contrib-${OPENCV_VERSION} opencv_contrib
-
-# Build OpenCV
-RUN cd opencv && mkdir build && cd build && \
- cmake \
- -D OPENCV_EXTRA_MODULES_PATH=/opencv_contrib/modules \
- -D CMAKE_BUILD_TYPE=RELEASE \
- -D BUILD_SHARED_LIBS=OFF \
- -D ENABLE_CXX11=ON \
- -D BUILD_EXAMPLES=OFF \
- -D BUILD_DOCS=OFF \
- -D BUILD_PERF_TESTS=OFF \
- -D BUILD_TESTS=OFF \
- -D BUILD_JAVA=OFF \
- -D BUILD_opencv_app=OFF \
- -D BUILD_opencv_barcode=OFF \
- -D BUILD_opencv_java_bindings_generator=OFF \
- -D BUILD_opencv_js_bindings_generator=OFF \
- -D BUILD_opencv_python_bindings_generator=OFF \
- -D BUILD_opencv_python_tests=OFF \
- -D BUILD_opencv_ts=OFF \
- -D BUILD_opencv_js=OFF \
- -D BUILD_opencv_bioinspired=OFF \
- -D BUILD_opencv_ccalib=OFF \
- -D BUILD_opencv_datasets=OFF \
- -D BUILD_opencv_dnn_objdetect=OFF \
- -D BUILD_opencv_dpm=OFF \
- -D BUILD_opencv_fuzzy=OFF \
- -D BUILD_opencv_gapi=OFF \
- -D BUILD_opencv_intensity_transform=OFF \
- -D BUILD_opencv_mcc=OFF \
- -D BUILD_opencv_objc_bindings_generator=OFF \
- -D BUILD_opencv_rapid=OFF \
- -D BUILD_opencv_reg=OFF \
- -D BUILD_opencv_stereo=OFF \
- -D BUILD_opencv_structured_light=OFF \
- -D BUILD_opencv_surface_matching=OFF \
- -D BUILD_opencv_videostab=OFF \
- -D BUILD_opencv_wechat_qrcode=ON \
- -D WITH_GSTREAMER=OFF \
- -D WITH_ADE=OFF \
- -D OPENCV_ENABLE_NONFREE=ON \
- .. && make -j$(nproc) && make install && ldconfig
-
-# Download OpenCvSharp
-RUN git clone https://github.com/shimat/opencvsharp.git && cd opencvsharp
-
-# Install the Extern lib.
-RUN mkdir /opencvsharp/make && cd /opencvsharp/make && \
- cmake -D CMAKE_INSTALL_PREFIX=/opencvsharp/make /opencvsharp/src && \
- make -j$(nproc) && make install && \
- rm -rf /opencv && \
- rm -rf /opencv_contrib && \
- cp /opencvsharp/make/OpenCvSharpExtern/libOpenCvSharpExtern.so /usr/lib/
-
-
-########## Test native .so file ##########
-
-FROM mcr.microsoft.com/dotnet/sdk:6.0-focal
-RUN apt-get update && apt-get -y install --no-install-recommends gcc
-# /usr/lib/libOpenCvSharpExtern.so
-# /usr/local/lib/libopencv_*.a
-COPY --from=builder /usr/lib /usr/lib
-#COPY --from=builder /usr/local/lib /usr/local/lib
-
-RUN echo "\n\
-#include \n\
-int core_Mat_sizeof(); \n\
-int main(){ \n\
- int i = core_Mat_sizeof(); \n\
- printf(\"sizeof(Mat) = %d\", i); \n\
- return 0; \n\
-}" > /test.c && \
- gcc -I./ -L./ test.c -o test -lOpenCvSharpExtern && \
- LD_LIBRARY_PATH=. ./test
-
-
-########## Test .NET class libraries ##########
-
-FROM mcr.microsoft.com/dotnet/sdk:6.0-focal
-COPY --from=builder /usr/lib /usr/lib
-# Install Build the C# part of OpenCvSharp
-RUN git clone https://github.com/shimat/opencvsharp.git && cd opencvsharp
-RUN cd /opencvsharp/src/OpenCvSharp && \
- dotnet build -c Release -f net6.0 && \
- cd /opencvsharp/src/OpenCvSharp.Extensions && \
- dotnet build -c Release -f net6.0
-
-RUN dotnet test /opencvsharp/test/OpenCvSharp.Tests/OpenCvSharp.Tests.csproj -c Release -f net6.0 --runtime ubuntu.20.04-x64 --logger "trx;LogFileName=test-results.trx" < /dev/null
-
-# Simple console app test using NuGet
-# RUN dotnet new console -f net6.0 -o "ConsoleApp01" && cd /ConsoleApp01 && \
-# echo "\n\
-# using System; \n\
-# using OpenCvSharp; \n\
-# class Program{ \n\
-# static void Main(){ \n\
-# Console.WriteLine(Cv2.GetTickCount()); \n\
-# using var mat = new Mat(1, 1, MatType.CV_8UC1); \n\
-# Console.WriteLine(mat.CvPtr); \n\
-# } \n\
-# }" > Program.cs && \
-# dotnet add package OpenCvSharp4 && \
-# dotnet run && \
-# rm -rf /ConsoleApp01
-
-#RUN ldd /artifacts/libOpenCvSharpExtern.so
-
-
-
-########## Final image ##########
-
-FROM mcr.microsoft.com/dotnet/sdk:6.0-focal as final
-COPY --from=builder /usr/lib /usr/lib
diff --git a/docker/ubuntu20-dotnet6-opencv4.5.3/Dockerfile b/docker/ubuntu22-dotnet6-opencv4.8.0/Dockerfile
similarity index 87%
rename from docker/ubuntu20-dotnet6-opencv4.5.3/Dockerfile
rename to docker/ubuntu22-dotnet6-opencv4.8.0/Dockerfile
index 566f5b484..fe9d4235b 100644
--- a/docker/ubuntu20-dotnet6-opencv4.5.3/Dockerfile
+++ b/docker/ubuntu22-dotnet6-opencv4.8.0/Dockerfile
@@ -1,7 +1,7 @@
-FROM mcr.microsoft.com/dotnet/aspnet:6.0-focal as builder
+FROM mcr.microsoft.com/dotnet/aspnet:6.0-jammy as builder
ENV DEBIAN_FRONTEND=noninteractive
-ENV OPENCV_VERSION=4.5.3
+ENV OPENCV_VERSION=4.8.0
WORKDIR /
@@ -21,7 +21,7 @@ RUN apt-get update && apt-get -y install --no-install-recommends \
libavcodec-dev \
libavformat-dev \
libswscale-dev \
- libdc1394-22-dev \
+ libdc1394-dev \
libxine2-dev \
libv4l-dev \
libtheora-dev \
@@ -29,7 +29,6 @@ RUN apt-get update && apt-get -y install --no-install-recommends \
libxvidcore-dev \
libopencore-amrnb-dev \
libopencore-amrwb-dev \
- libavresample-dev \
x264 \
libtesseract-dev \
libgdiplus \
@@ -37,12 +36,12 @@ RUN apt-get update && apt-get -y install --no-install-recommends \
&& rm -rf /var/lib/apt/lists/*
# Setup opencv and opencv-contrib source
-RUN wget https://github.com/opencv/opencv/archive/${OPENCV_VERSION}.zip && \
- unzip ${OPENCV_VERSION}.zip && \
+RUN wget -q https://github.com/opencv/opencv/archive/${OPENCV_VERSION}.zip && \
+ unzip -q ${OPENCV_VERSION}.zip && \
rm ${OPENCV_VERSION}.zip && \
mv opencv-${OPENCV_VERSION} opencv && \
- wget https://github.com/opencv/opencv_contrib/archive/${OPENCV_VERSION}.zip && \
- unzip ${OPENCV_VERSION}.zip && \
+ wget -q https://github.com/opencv/opencv_contrib/archive/${OPENCV_VERSION}.zip && \
+ unzip -q ${OPENCV_VERSION}.zip && \
rm ${OPENCV_VERSION}.zip && \
mv opencv_contrib-${OPENCV_VERSION} opencv_contrib
@@ -97,12 +96,14 @@ RUN mkdir /opencvsharp/make && cd /opencvsharp/make && \
make -j$(nproc) && make install && \
rm -rf /opencv && \
rm -rf /opencv_contrib && \
- cp /opencvsharp/make/OpenCvSharpExtern/libOpenCvSharpExtern.so /usr/lib/
+ cp /opencvsharp/make/OpenCvSharpExtern/libOpenCvSharpExtern.so /usr/lib/ && \
+ mkdir /artifacts && \
+ cp /opencvsharp/make/OpenCvSharpExtern/libOpenCvSharpExtern.so /artifacts/
########## Test native .so file ##########
-FROM mcr.microsoft.com/dotnet/sdk:6.0-focal
+FROM mcr.microsoft.com/dotnet/sdk:6.0-jammy
RUN apt-get update && apt-get -y install --no-install-recommends gcc
# /usr/lib/libOpenCvSharpExtern.so
# /usr/local/lib/libopencv_*.a
@@ -123,7 +124,7 @@ int main(){ \n\
########## Test .NET class libraries ##########
-FROM mcr.microsoft.com/dotnet/sdk:6.0-focal
+FROM mcr.microsoft.com/dotnet/sdk:6.0-jammy
COPY --from=builder /usr/lib /usr/lib
# Install Build the C# part of OpenCvSharp
RUN git clone https://github.com/shimat/opencvsharp.git && cd opencvsharp
@@ -156,5 +157,6 @@ RUN dotnet test /opencvsharp/test/OpenCvSharp.Tests/OpenCvSharp.Tests.csproj -c
########## Final image ##########
-FROM mcr.microsoft.com/dotnet/aspnet:6.0-focal as final
+FROM mcr.microsoft.com/dotnet/aspnet:6.0-jammy as final
COPY --from=builder /usr/lib /usr/lib
+COPY --from=builder /artifacts /artifacts
diff --git a/download_opencv_windows.ps1 b/download_opencv_windows.ps1
index aad985065..0e5c29b21 100644
--- a/download_opencv_windows.ps1
+++ b/download_opencv_windows.ps1
@@ -1,5 +1,5 @@
-$tag = "4.7.0.20230103-beta"
-$version = "470"
+$tag = "4.8.0.20230705"
+$version = "480"
$uriArray = @(
"https://github.com/shimat/opencv_files/releases/download/${tag}/opencv${version}_win_x64.zip"
"https://github.com/shimat/opencv_files/releases/download/${tag}/opencv${version}_win_x86.zip"
diff --git a/download_tesseract_windows.ps1 b/download_tesseract_windows.ps1
index 2076517bb..67a0ae109 100644
--- a/download_tesseract_windows.ps1
+++ b/download_tesseract_windows.ps1
@@ -1,5 +1,5 @@
$uriArray = @(
- "https://github.com/shimat/tesseract_vcpkg/releases/download/2021.12.31/tesseract_vcpkg.0.0.7-beta.zip"
+ "https://github.com/shimat/tesseract_vcpkg/releases/download/2023.07.06-beta/tesseract_vcpkg.0.0.8-beta.nupkg"
)
function Download($uri, $outFile) {
diff --git a/nuget/OpenCvSharp4.Extensions.nuspec b/nuget/OpenCvSharp4.Extensions.nuspec
index e3f9bfef9..0cec22c90 100644
--- a/nuget/OpenCvSharp4.Extensions.nuspec
+++ b/nuget/OpenCvSharp4.Extensions.nuspec
@@ -18,23 +18,19 @@
-
+
-
+
-
-
-
-
-
+
-
+
@@ -56,12 +52,8 @@
-
-
-
-
-
\ No newline at end of file
+
diff --git a/nuget/OpenCvSharp4.WpfExtensions.nuspec b/nuget/OpenCvSharp4.WpfExtensions.nuspec
index d348574f0..861396f89 100644
--- a/nuget/OpenCvSharp4.WpfExtensions.nuspec
+++ b/nuget/OpenCvSharp4.WpfExtensions.nuspec
@@ -18,9 +18,11 @@
+
-
+
+
@@ -35,10 +37,10 @@
-
+
-
-
-
+
+
+
-
\ No newline at end of file
+
diff --git a/nuget/OpenCvSharp4.nuspec b/nuget/OpenCvSharp4.nuspec
index 632e319dd..76a7e1e27 100644
--- a/nuget/OpenCvSharp4.nuspec
+++ b/nuget/OpenCvSharp4.nuspec
@@ -18,24 +18,20 @@
-
+
-
+
-
-
-
-
-
+
-
+
@@ -57,10 +53,6 @@
-
-
-
-
diff --git a/nuget/OpenCvSharp4.runtime.uwp.nuspec b/nuget/OpenCvSharp4.runtime.uwp.nuspec
index 1816b5f2a..3e7ada330 100644
--- a/nuget/OpenCvSharp4.runtime.uwp.nuspec
+++ b/nuget/OpenCvSharp4.runtime.uwp.nuspec
@@ -26,11 +26,11 @@
-
-
-
-
-
-
+
+
+
+
+
+
diff --git a/nuget/OpenCvSharp4.runtime.win.nuspec b/nuget/OpenCvSharp4.runtime.win.nuspec
index d3088c363..ff7668773 100644
--- a/nuget/OpenCvSharp4.runtime.win.nuspec
+++ b/nuget/OpenCvSharp4.runtime.win.nuspec
@@ -19,7 +19,7 @@
-
+
@@ -27,8 +27,8 @@
-
-
+
+
diff --git a/nuget/OpenCvSharp4.runtime.win.props b/nuget/OpenCvSharp4.runtime.win.props
index 393a2e5c2..654fd02f9 100644
--- a/nuget/OpenCvSharp4.runtime.win.props
+++ b/nuget/OpenCvSharp4.runtime.win.props
@@ -7,8 +7,8 @@
dll\x86\OpenCvSharpExtern.dll
PreserveNewest
-
- dll\x86\opencv_videoio_ffmpeg455.dll
+
+ dll\x86\opencv_videoio_ffmpeg480.dll
PreserveNewest
@@ -17,8 +17,8 @@
dll\x64\OpenCvSharpExtern.dll
PreserveNewest
-
- dll\x64\opencv_videoio_ffmpeg455_64.dll
+
+ dll\x64\opencv_videoio_ffmpeg480_64.dll
PreserveNewest
diff --git a/samples b/samples
index 0accbeed2..e4dc885f1 160000
--- a/samples
+++ b/samples
@@ -1 +1 @@
-Subproject commit 0accbeed2ae0e7cdb852e670d600ff71307a8da9
+Subproject commit e4dc885f18dfb63c8b66f4489b5da803eeccdaa2
diff --git a/src/OpenCvSharp.Extensions/BitmapConverter.cs b/src/OpenCvSharp.Extensions/BitmapConverter.cs
index 2137ba756..f98a56ce0 100644
--- a/src/OpenCvSharp.Extensions/BitmapConverter.cs
+++ b/src/OpenCvSharp.Extensions/BitmapConverter.cs
@@ -20,6 +20,8 @@ public static class BitmapConverter
/// A Mat object which is converted from System.Drawing.Bitmap
public static Mat ToMat(this Bitmap src)
{
+ if (!RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
+ throw new NotSupportedException("Non-Windows OS are not supported");
if (src is null)
throw new ArgumentNullException(nameof(src));
@@ -53,6 +55,8 @@ public static Mat ToMat(this Bitmap src)
/// A Mat object which is converted from System.Drawing.Bitmap
public static unsafe void ToMat(this Bitmap src, Mat dst)
{
+ if (!RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
+ throw new NotSupportedException("Non-Windows OS are not supported");
if (src is null)
throw new ArgumentNullException(nameof(src));
if (dst is null)
@@ -319,10 +323,10 @@ void Format32bppRgb()
///
public static Bitmap ToBitmap(this Mat src)
{
+ if (!RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
+ throw new NotSupportedException("Non-Windows OS are not supported");
if (src is null)
- {
throw new ArgumentNullException(nameof(src));
- }
PixelFormat pf;
switch (src.Channels())
@@ -347,6 +351,8 @@ public static Bitmap ToBitmap(this Mat src)
///
public static Bitmap ToBitmap(this Mat src, PixelFormat pf)
{
+ if (!RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
+ throw new NotSupportedException("Non-Windows OS are not supported");
if (src is null)
throw new ArgumentNullException(nameof(src));
src.ThrowIfDisposed();
@@ -364,6 +370,8 @@ public static Bitmap ToBitmap(this Mat src, PixelFormat pf)
/// Author: shimat, Gummo (ROI support)
public static unsafe void ToBitmap(this Mat src, Bitmap dst)
{
+ if (!RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
+ throw new NotSupportedException("Non-Windows OS are not supported");
if (src is null)
throw new ArgumentNullException(nameof(src));
if (dst is null)
diff --git a/src/OpenCvSharp.Extensions/OpenCvSharp.Extensions.csproj b/src/OpenCvSharp.Extensions/OpenCvSharp.Extensions.csproj
index e82658eec..71174ba3c 100644
--- a/src/OpenCvSharp.Extensions/OpenCvSharp.Extensions.csproj
+++ b/src/OpenCvSharp.Extensions/OpenCvSharp.Extensions.csproj
@@ -1,7 +1,7 @@
- net48;netstandard2.0;netstandard2.1;netcoreapp3.1;net6.0;
+ net48;netstandard2.0;netstandard2.1;net6.0;
true
true
OpenCvSharp.Extensions
@@ -43,7 +43,7 @@
- 5.0.3
+ 7.0.0
diff --git a/src/OpenCvSharp.WpfExtensions/BitmapSourceConverter.cs b/src/OpenCvSharp.WpfExtensions/BitmapSourceConverter.cs
index d0c43973b..9dd67b94f 100644
--- a/src/OpenCvSharp.WpfExtensions/BitmapSourceConverter.cs
+++ b/src/OpenCvSharp.WpfExtensions/BitmapSourceConverter.cs
@@ -9,255 +9,246 @@
using System.Windows.Threading;
using PixelFormat = System.Windows.Media.PixelFormat;
-namespace OpenCvSharp.WpfExtensions
+namespace OpenCvSharp.WpfExtensions;
+
+///
+/// Static class which provides conversion between System.Windows.Media.Imaging.BitmapSource and IplImage
+///
+public static class BitmapSourceConverter
{
///
- /// Static class which provides conversion between System.Windows.Media.Imaging.BitmapSource and IplImage
+ /// Converts Mat to BitmapSource.
///
- public static class BitmapSourceConverter
+ /// Input IplImage
+ /// BitmapSource
+ public static BitmapSource ToBitmapSource(
+ this Mat src) =>
+ src.ToWriteableBitmap();
+
+ ///
+ /// Converts Mat to BitmapSource.
+ ///
+ /// Input IplImage
+ ///
+ ///
+ ///
+ ///
+ /// BitmapSource
+ public static BitmapSource ToBitmapSource(
+ this Mat src,
+ int horizontalResolution,
+ int verticalResolution,
+ PixelFormat pixelFormat,
+ BitmapPalette palette) =>
+ src.ToWriteableBitmap(horizontalResolution, verticalResolution, pixelFormat, palette);
+
+ ///
+ /// Converts System.Drawing.Bitmap to BitmapSource.
+ ///
+ /// Input System.Drawing.Bitmap
+ /// http://www.codeproject.com/Articles/104929/Bitmap-to-BitmapSource
+ /// BitmapSource
+ public static BitmapSource ToBitmapSource(this Bitmap src)
{
- ///
- /// Converts Mat to BitmapSource.
- ///
- /// Input IplImage
- /// BitmapSource
- public static BitmapSource ToBitmapSource(
- this Mat src)
- {
- return src.ToWriteableBitmap();
- }
+ if (src is null)
+ throw new ArgumentNullException(nameof(src));
- ///
- /// Converts Mat to BitmapSource.
- ///
- /// Input IplImage
- ///
- ///
- ///
- ///
- /// BitmapSource
- public static BitmapSource ToBitmapSource(
- this Mat src,
- int horizontalResolution,
- int verticalResolution,
- PixelFormat pixelFormat,
- BitmapPalette palette)
+ if (Application.Current?.Dispatcher is null)
{
- return src.ToWriteableBitmap(horizontalResolution, verticalResolution, pixelFormat, palette);
+ using var memoryStream = new MemoryStream();
+ src.Save(memoryStream, ImageFormat.Png);
+ return CreateBitmapSourceFromBitmap(memoryStream);
}
- ///
- /// Converts System.Drawing.Bitmap to BitmapSource.
- ///
- /// Input System.Drawing.Bitmap
- /// http://www.codeproject.com/Articles/104929/Bitmap-to-BitmapSource
- /// BitmapSource
- public static BitmapSource ToBitmapSource(this Bitmap src)
+ using (var memoryStream = new MemoryStream())
{
- if (src is null)
- throw new ArgumentNullException(nameof(src));
+ // You need to specify the image format to fill the stream.
+ // I'm assuming it is PNG
+ src.Save(memoryStream, ImageFormat.Png);
+ memoryStream.Seek(0, SeekOrigin.Begin);
+
+ // Make sure to create the bitmap in the UI thread
+ if (IsInvokeRequired())
+ return (BitmapSource) Application.Current.Dispatcher.Invoke(
+ new Func(CreateBitmapSourceFromBitmap),
+ DispatcherPriority.Normal,
+ memoryStream);
+
+ return CreateBitmapSourceFromBitmap(memoryStream);
+ }
+ }
- if (Application.Current?.Dispatcher is null)
- {
- using (var memoryStream = new MemoryStream())
- {
- src.Save(memoryStream, ImageFormat.Png);
- return CreateBitmapSourceFromBitmap(memoryStream);
- }
- }
+ // http://www.codeproject.com/Articles/104929/Bitmap-to-BitmapSource
+ private static bool IsInvokeRequired()
+ => Dispatcher.CurrentDispatcher != Application.Current.Dispatcher;
- using (var memoryStream = new MemoryStream())
- {
- // You need to specify the image format to fill the stream.
- // I'm assuming it is PNG
- src.Save(memoryStream, ImageFormat.Png);
- memoryStream.Seek(0, SeekOrigin.Begin);
+ // http://www.codeproject.com/Articles/104929/Bitmap-to-BitmapSource
+ private static BitmapSource CreateBitmapSourceFromBitmap(Stream stream)
+ {
+ var bitmapDecoder = BitmapDecoder.Create(
+ stream,
+ BitmapCreateOptions.PreservePixelFormat,
+ BitmapCacheOption.OnLoad);
- // Make sure to create the bitmap in the UI thread
- if (IsInvokeRequired())
- return (BitmapSource) Application.Current.Dispatcher.Invoke(
- new Func(CreateBitmapSourceFromBitmap),
- DispatcherPriority.Normal,
- memoryStream);
+ // This will disconnect the stream from the image completely...
+ var writable = new WriteableBitmap(bitmapDecoder.Frames.Single());
+ writable.Freeze();
- return CreateBitmapSourceFromBitmap(memoryStream);
- }
- }
+ return writable;
+ }
- // http://www.codeproject.com/Articles/104929/Bitmap-to-BitmapSource
- private static bool IsInvokeRequired()
- {
- return Dispatcher.CurrentDispatcher != Application.Current.Dispatcher;
- }
+ #region ToMat
- // http://www.codeproject.com/Articles/104929/Bitmap-to-BitmapSource
- private static BitmapSource CreateBitmapSourceFromBitmap(Stream stream)
+ ///
+ /// Converts BitmapSource to Mat
+ ///
+ /// Input BitmapSource
+ /// IplImage
+ public static Mat ToMat(this BitmapSource src)
+ {
+ if (src is null)
{
- var bitmapDecoder = BitmapDecoder.Create(
- stream,
- BitmapCreateOptions.PreservePixelFormat,
- BitmapCacheOption.OnLoad);
-
- // This will disconnect the stream from the image completely...
- var writable = new WriteableBitmap(bitmapDecoder.Frames.Single());
- writable.Freeze();
-
- return writable;
+ throw new ArgumentNullException(nameof(src));
}
- #region ToMat
+ int w = src.PixelWidth;
+ int h = src.PixelHeight;
+ MatType type = WriteableBitmapConverter.GetOptimumType(src.Format);
+ Mat dst = new Mat(h, w, type);
+ ToMat(src, dst);
+ return dst;
+ }
- ///
- /// Converts BitmapSource to Mat
- ///
- /// Input BitmapSource
- /// IplImage
- public static Mat ToMat(this BitmapSource src)
+ ///
+ /// Converts BitmapSource to Mat
+ ///
+ /// Input BitmapSource
+ /// Output Mat
+ public static void ToMat(this BitmapSource src, Mat dst)
+ {
+ if (src is null)
+ throw new ArgumentNullException(nameof(src));
+ if (dst is null)
+ throw new ArgumentNullException(nameof(dst));
+ if (src.PixelWidth != dst.Width || src.PixelHeight != dst.Height)
+ throw new ArgumentException("size of src must be equal to size of dst");
+ if (dst.Dims > 2)
+ throw new ArgumentException("Mat dimensions must be 2");
+
+ int w = src.PixelWidth;
+ int h = src.PixelHeight;
+ int bpp = src.Format.BitsPerPixel;
+ int channels = WriteableBitmapConverter.GetOptimumChannels(src.Format);
+ if (dst.Channels() != channels)
{
- if (src is null)
- {
- throw new ArgumentNullException(nameof(src));
- }
-
- int w = src.PixelWidth;
- int h = src.PixelHeight;
- MatType type = WriteableBitmapConverter.GetOptimumType(src.Format);
- Mat dst = new Mat(h, w, type);
- ToMat(src, dst);
- return dst;
+ throw new ArgumentException("nChannels of dst is invalid", nameof(dst));
}
- ///
- /// Converts BitmapSource to Mat
- ///
- /// Input BitmapSource
- /// Output Mat
- public static void ToMat(this BitmapSource src, Mat dst)
- {
- if (src is null)
- throw new ArgumentNullException(nameof(src));
- if (dst is null)
- throw new ArgumentNullException(nameof(dst));
- if (src.PixelWidth != dst.Width || src.PixelHeight != dst.Height)
- throw new ArgumentException("size of src must be equal to size of dst");
- if (dst.Dims > 2)
- throw new ArgumentException("Mat dimensions must be 2");
+ bool submat = dst.IsSubmatrix();
+ bool continuous = dst.IsContinuous();
- int w = src.PixelWidth;
- int h = src.PixelHeight;
- int bpp = src.Format.BitsPerPixel;
- int channels = WriteableBitmapConverter.GetOptimumChannels(src.Format);
- if (dst.Channels() != channels)
- {
- throw new ArgumentException("nChannels of dst is invalid", nameof(dst));
- }
-
- bool submat = dst.IsSubmatrix();
- bool continuous = dst.IsContinuous();
+ unsafe
+ {
+ byte* p = (byte*)(dst.Data);
+ long step = dst.Step();
- unsafe
+ // 1bppは手作業でコピー
+ if (bpp == 1)
{
- byte* p = (byte*)(dst.Data);
- long step = dst.Step();
-
- // 1bppは手作業でコピー
- if (bpp == 1)
+ if (submat)
+ throw new NotImplementedException("submatrix not supported");
+
+ // BitmapImageのデータを配列にコピー
+ // 要素1つに横8ピクセル分のデータが入っている。
+ int stride = (w / 8) + 1;
+ byte[] pixels = new byte[h * stride];
+ src.CopyPixels(pixels, stride, 0);
+ int x = 0;
+ for (int y = 0; y < h; y++)
{
- if (submat)
- throw new NotImplementedException("submatrix not supported");
-
- // BitmapImageのデータを配列にコピー
- // 要素1つに横8ピクセル分のデータが入っている。
- int stride = (w / 8) + 1;
- byte[] pixels = new byte[h * stride];
- src.CopyPixels(pixels, stride, 0);
- int x = 0;
- for (int y = 0; y < h; y++)
+ int offset = y * stride;
+ // この行の各バイトを調べていく
+ for (int bytePos = 0; bytePos < stride; bytePos++)
{
- int offset = y * stride;
- // この行の各バイトを調べていく
- for (int bytePos = 0; bytePos < stride; bytePos++)
+ if (x < w)
{
- if (x < w)
+ // 現在の位置のバイトからそれぞれのビット8つを取り出す
+ byte b = pixels[offset + bytePos];
+ for (int i = 0; i < 8; i++)
{
- // 現在の位置のバイトからそれぞれのビット8つを取り出す
- byte b = pixels[offset + bytePos];
- for (int i = 0; i < 8; i++)
+ if (x >= w)
{
- if (x >= w)
- {
- break;
- }
- p[step * y + x] = ((b & 0x80) == 0x80) ? (byte)255 : (byte)0;
- b <<= 1;
- x++;
+ break;
}
+ p[step * y + x] = ((b & 0x80) == 0x80) ? (byte)255 : (byte)0;
+ b <<= 1;
+ x++;
}
}
- // 次の行へ
- x = 0;
}
-
+ // 次の行へ
+ x = 0;
}
- // 8bpp
- /*else if (bpp == 8)
+
+ }
+ // 8bpp
+ /*else if (bpp == 8)
+ {
+ int stride = w;
+ byte[] pixels = new byte[h * stride];
+ src.CopyPixels(pixels, stride, 0);
+ for (int y = 0; y < h; y++)
{
- int stride = w;
- byte[] pixels = new byte[h * stride];
- src.CopyPixels(pixels, stride, 0);
- for (int y = 0; y < h; y++)
+ for (int x = 0; x < w; x++)
{
- for (int x = 0; x < w; x++)
- {
- p[step * y + x] = pixels[y * stride + x];
- }
+ p[step * y + x] = pixels[y * stride + x];
}
- }*/
- // 24bpp, 32bpp, ...
+ }
+ }*/
+ // 24bpp, 32bpp, ...
+ else
+ {
+ int stride = w * ((bpp + 7) / 8);
+ if (!submat && continuous)
+ {
+ long imageSize = dst.DataEnd.ToInt64() - dst.Data.ToInt64();
+ if (imageSize < 0)
+ throw new OpenCvSharpException("The mat has invalid data pointer");
+ if (imageSize > int.MaxValue)
+ throw new OpenCvSharpException("Too big mat data");
+ src.CopyPixels(Int32Rect.Empty, dst.Data, (int)imageSize, stride);
+ }
else
{
- int stride = w * ((bpp + 7) / 8);
- if (!submat && continuous)
+ // 高さ1pxの矩形ごと(≒1行ごと)にコピー
+ var roi = new Int32Rect { X = 0, Y = 0, Width = w, Height = 1 };
+ IntPtr dstData = dst.Data;
+ for (int y = 0; y < h; y++)
{
- long imageSize = dst.DataEnd.ToInt64() - dst.Data.ToInt64();
- if (imageSize < 0)
- throw new OpenCvSharpException("The mat has invalid data pointer");
- if (imageSize > int.MaxValue)
- throw new OpenCvSharpException("Too big mat data");
- src.CopyPixels(Int32Rect.Empty, dst.Data, (int)imageSize, stride);
- }
- else
- {
- // 高さ1pxの矩形ごと(≒1行ごと)にコピー
- var roi = new Int32Rect { X = 0, Y = 0, Width = w, Height = 1 };
- IntPtr dstData = dst.Data;
- for (int y = 0; y < h; y++)
- {
- roi.Y = y;
- src.CopyPixels(roi, dstData, stride, stride);
- dstData = new IntPtr(dstData.ToInt64() + stride);
- }
+ roi.Y = y;
+ src.CopyPixels(roi, dstData, stride, stride);
+ dstData = new IntPtr(dstData.ToInt64() + stride);
}
}
-
}
- }
- ///
- /// Copies pixel data from System.Windows.Media.Imaging.BitmapSource to IplImage instance
- ///
- ///
- ///
- ///
- public static void CopyFrom(this Mat mat, BitmapSource wb)
- {
- if (wb is null)
- throw new ArgumentNullException(nameof(wb));
-
- ToMat(wb, mat);
}
+ }
+
+ ///
+ /// Copies pixel data from System.Windows.Media.Imaging.BitmapSource to IplImage instance
+ ///
+ ///
+ ///
+ ///
+ public static void CopyFrom(this Mat mat, BitmapSource wb)
+ {
+ if (wb is null)
+ throw new ArgumentNullException(nameof(wb));
- #endregion
+ ToMat(wb, mat);
}
+
+ #endregion
}
#endif
diff --git a/src/OpenCvSharp.WpfExtensions/OpenCvSharp.WpfExtensions.csproj b/src/OpenCvSharp.WpfExtensions/OpenCvSharp.WpfExtensions.csproj
index 8ed5e7c9c..0ca10e3e2 100644
--- a/src/OpenCvSharp.WpfExtensions/OpenCvSharp.WpfExtensions.csproj
+++ b/src/OpenCvSharp.WpfExtensions/OpenCvSharp.WpfExtensions.csproj
@@ -3,20 +3,23 @@
- net48;netcoreapp3.1;net6.0-windows
+ net48;net6.0-windows
true
10
enable
https://github.com/shimat/opencvsharp.git
git
-
+
AllEnabledByDefault
true
+
+
+
@@ -39,10 +42,6 @@
-
-
-
-
CA1303;
diff --git a/src/OpenCvSharp/Cv2/Cv2_imgproc.cs b/src/OpenCvSharp/Cv2/Cv2_imgproc.cs
index 387c2dd67..1267afcb4 100644
--- a/src/OpenCvSharp/Cv2/Cv2_imgproc.cs
+++ b/src/OpenCvSharp/Cv2/Cv2_imgproc.cs
@@ -1773,6 +1773,13 @@ public static void PyrDown(InputArray src, OutputArray dst,
dst.Fix();
}
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
public static void BuildPyramid(InputArray src, VectorOfMat dst,int maxlevel,
BorderTypes borderType = BorderTypes.Default)
{
diff --git a/src/OpenCvSharp/Modules/core/Mat/Mat_CvMethods.cs b/src/OpenCvSharp/Modules/core/Mat/Mat_CvMethods.cs
index e7518860b..e51e27ede 100644
--- a/src/OpenCvSharp/Modules/core/Mat/Mat_CvMethods.cs
+++ b/src/OpenCvSharp/Modules/core/Mat/Mat_CvMethods.cs
@@ -1549,17 +1549,20 @@ public Mat PyrUp(Size? dstSize = null, BorderTypes borderType = BorderTypes.Defa
Cv2.PyrUp(this, dst, dstSize, borderType);
return dst;
}
+
///
/// Upsamples an image and then blurs it.
///
+ ///
///
///
public IEnumerable BuildPyramid(int maxlevel, BorderTypes borderType = BorderTypes.Default)
{
- var dst = new VectorOfMat();
+ using var dst = new VectorOfMat();
Cv2.BuildPyramid(this, dst, maxlevel, borderType);
return dst.ToArray();
}
+
///
/// corrects lens distortion for the given camera matrix and distortion coefficients
///
diff --git a/src/OpenCvSharp/Modules/core/Struct/Size.cs b/src/OpenCvSharp/Modules/core/Struct/Size.cs
index ca70a0d55..8aad14cfa 100644
--- a/src/OpenCvSharp/Modules/core/Struct/Size.cs
+++ b/src/OpenCvSharp/Modules/core/Struct/Size.cs
@@ -57,10 +57,8 @@ public Size(double width, double height)
/// A Point to compare.
/// A Point to compare.
/// This operator returns true if the members of left and right are equal; otherwise, false.
- public static bool operator ==(Size lhs, Size rhs)
- {
- return lhs.Equals(rhs);
- }
+ public static bool operator ==(Size lhs, Size rhs)
+ => lhs.Equals(rhs);
///
/// Compares two CvPoint objects. The result specifies whether the members of each object are unequal.
@@ -68,20 +66,20 @@ public Size(double width, double height)
/// A Point to compare.
/// A Point to compare.
/// This operator returns true if the members of left and right are unequal; otherwise, false.
- public static bool operator !=(Size lhs, Size rhs)
- {
- return !lhs.Equals(rhs);
- }
+ public static bool operator !=(Size lhs, Size rhs)
+ => !lhs.Equals(rhs);
- public static explicit operator Size(Size2d size)
- {
- return new(size.Width, size.Height);
- }
+ ///
+ ///
+ ///
+ public static explicit operator Size(Size2d size)
+ => new(size.Width, size.Height);
- public static explicit operator Size(Size2f size)
- {
- return new(size.Width, size.Height);
- }
+ ///
+ ///
+ ///
+ public static explicit operator Size(Size2f size)
+ => new(size.Width, size.Height);
#endregion
diff --git a/src/OpenCvSharp/Modules/core/Struct/Size2d.cs b/src/OpenCvSharp/Modules/core/Struct/Size2d.cs
index 7dbd09ab7..5607d4ae7 100644
--- a/src/OpenCvSharp/Modules/core/Struct/Size2d.cs
+++ b/src/OpenCvSharp/Modules/core/Struct/Size2d.cs
@@ -52,10 +52,7 @@ public Size2d(double width, double height)
/// A Point to compare.
/// A Point to compare.
/// This operator returns true if the members of left and right are equal; otherwise, false.
- public static bool operator ==(Size2d lhs, Size2d rhs)
- {
- return lhs.Equals(rhs);
- }
+ public static bool operator ==(Size2d lhs, Size2d rhs) => lhs.Equals(rhs);
///
/// Compares two CvPoint objects. The result specifies whether the members of each object are unequal.
@@ -63,36 +60,30 @@ public Size2d(double width, double height)
/// A Point to compare.
/// A Point to compare.
/// This operator returns true if the members of left and right are unequal; otherwise, false.
- public static bool operator !=(Size2d lhs, Size2d rhs)
- {
- return !lhs.Equals(rhs);
- }
+ public static bool operator !=(Size2d lhs, Size2d rhs)
+ => !lhs.Equals(rhs);
- public static implicit operator Size2d(Size size)
- {
- return new(size.Width, size.Height);
- }
+ ///
+ ///
+ ///
+ public static implicit operator Size2d(Size size)
+ => new(size.Width, size.Height);
- public static implicit operator Size2d(Size2f size)
- {
- return new(size.Width, size.Height);
- }
+ ///
+ ///
+ ///
+ public static implicit operator Size2d(Size2f size)
+ => new(size.Width, size.Height);
#endregion
#region Override
///
- public readonly bool Equals(Size2d other)
- {
- return Width.Equals(other.Width) && Height.Equals(other.Height);
- }
+ public readonly bool Equals(Size2d other) => Width.Equals(other.Width) && Height.Equals(other.Height);
///
- public override readonly bool Equals(object? obj)
- {
- return obj is Size2d other && Equals(other);
- }
+ public override readonly bool Equals(object? obj) => obj is Size2d other && Equals(other);
///
public override readonly int GetHashCode()
@@ -108,10 +99,7 @@ public override readonly int GetHashCode()
}
///
- public override readonly string ToString()
- {
- return $"(width:{Width} height:{Height})";
- }
+ public override readonly string ToString() => $"(width:{Width} height:{Height})";
#endregion
diff --git a/src/OpenCvSharp/Modules/core/Struct/Size2f.cs b/src/OpenCvSharp/Modules/core/Struct/Size2f.cs
index c57105137..69309a513 100644
--- a/src/OpenCvSharp/Modules/core/Struct/Size2f.cs
+++ b/src/OpenCvSharp/Modules/core/Struct/Size2f.cs
@@ -53,10 +53,7 @@ public Size2f(double width, double height)
/// A Point to compare.
/// A Point to compare.
/// This operator returns true if the members of left and right are equal; otherwise, false.
- public static bool operator ==(Size2f lhs, Size2f rhs)
- {
- return lhs.Equals(rhs);
- }
+ public static bool operator ==(Size2f lhs, Size2f rhs) => lhs.Equals(rhs);
///
/// Compares two CvPoint objects. The result specifies whether the members of each object are unequal.
@@ -64,36 +61,30 @@ public Size2f(double width, double height)
/// A Point to compare.
/// A Point to compare.
/// This operator returns true if the members of left and right are unequal; otherwise, false.
- public static bool operator !=(Size2f lhs, Size2f rhs)
- {
- return !lhs.Equals(rhs);
- }
+ public static bool operator !=(Size2f lhs, Size2f rhs)
+ => !lhs.Equals(rhs);
- public static implicit operator Size2f(Size size)
- {
- return new(size.Width, size.Height);
- }
+ ///
+ ///
+ ///
+ public static implicit operator Size2f(Size size)
+ => new(size.Width, size.Height);
- public static explicit operator Size2f(Size2d size)
- {
- return new(size.Width, size.Height);
- }
+ ///
+ ///
+ ///
+ public static explicit operator Size2f(Size2d size)
+ => new(size.Width, size.Height);
#endregion
#region Override
///
- public readonly bool Equals(Size2f other)
- {
- return Width.Equals(other.Width) && Height.Equals(other.Height);
- }
+ public readonly bool Equals(Size2f other) => Width.Equals(other.Width) && Height.Equals(other.Height);
///
- public override readonly bool Equals(object? obj)
- {
- return obj is Size2f other && Equals(other);
- }
+ public override readonly bool Equals(object? obj) => obj is Size2f other && Equals(other);
///
public override readonly int GetHashCode()
@@ -109,10 +100,7 @@ public override readonly int GetHashCode()
}
///
- public override readonly string ToString()
- {
- return $"(width:{Width} height:{Height})";
- }
+ public override readonly string ToString() => $"(width:{Width} height:{Height})";
#endregion
}
diff --git a/src/OpenCvSharp/OpenCvSharp.csproj b/src/OpenCvSharp/OpenCvSharp.csproj
index 1c7f48aea..6d3650df7 100644
--- a/src/OpenCvSharp/OpenCvSharp.csproj
+++ b/src/OpenCvSharp/OpenCvSharp.csproj
@@ -1,7 +1,7 @@
- netstandard2.0;netstandard2.1;netcoreapp3.1;net48;net6.0;
+ netstandard2.0;netstandard2.1;net48;net6.0;
true
true
OpenCvSharp
@@ -27,7 +27,7 @@
-
+
diff --git a/src/OpenCvSharpExtern/OpenCvSharpExtern.vcxproj b/src/OpenCvSharpExtern/OpenCvSharpExtern.vcxproj
index f6995bec7..d293face1 100644
--- a/src/OpenCvSharpExtern/OpenCvSharpExtern.vcxproj
+++ b/src/OpenCvSharpExtern/OpenCvSharpExtern.vcxproj
@@ -79,14 +79,14 @@
$(SolutionDir)src\$(Configuration)\$(PlatformName)\
src\$(Platform)\$(Configuration)\
false
- $(SolutionDir)\opencv_files\opencv470_win_x64\include;$(IncludePath)
- $(SolutionDir)\opencv_files\opencv470_win_x64\include;$(IncludePath)
- $(SolutionDir)\opencv_files\opencv470_win_x64\x64\vc16\staticlib;$(LibraryPath)
- $(SolutionDir)\opencv_files\opencv470_win_x64\x64\vc17\staticlib;$(SolutionDir)\tesseract_files\tesseract_vcpkg\installed\x64-windows-static\lib;$(LibraryPath)
- $(SolutionDir)\opencv_files\opencv470_win_x86\include;$(IncludePath)
- $(SolutionDir)\opencv_files\opencv470_win_x86\include;$(IncludePath)
- $(SolutionDir)\opencv_files\opencv470_win_x86\x86\vc17\staticlib;C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib;$(SolutionDir)\tesseract_files\tesseract_vcpkg\installed\x86-windows-static\lib;$(LibraryPath)
- $(SolutionDir)\opencv_files\opencv470_win_x86\x86\vc16\staticlib;$(LibraryPath)
+ $(SolutionDir)\opencv_files\opencv480_win_x64\include;$(IncludePath)
+ $(SolutionDir)\opencv_files\opencv480_win_x64\include;$(IncludePath)
+ $(SolutionDir)\opencv_files\opencv480_win_x64\x64\vc16\staticlib;$(LibraryPath)
+ $(SolutionDir)\opencv_files\opencv480_win_x64\x64\vc17\staticlib;$(SolutionDir)\tesseract_files\tesseract_vcpkg\x64-windows-static\lib;$(LibraryPath)
+ $(SolutionDir)\opencv_files\opencv480_win_x86\include;$(IncludePath)
+ $(SolutionDir)\opencv_files\opencv480_win_x86\include;$(IncludePath)
+ $(SolutionDir)\opencv_files\opencv480_win_x86\x86\vc17\staticlib;C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib;$(SolutionDir)\tesseract_files\tesseract_vcpkg\x86-windows-static\lib;$(LibraryPath)
+ $(SolutionDir)\opencv_files\opencv480_win_x86\x86\vc16\staticlib;$(LibraryPath)
@@ -164,7 +164,7 @@
true
- IlmImf.lib;ippicvmt.lib;ippiw.lib;ittnotify.lib;libjpeg-turbo.lib;libopenjp2.lib;libpng.lib;libprotobuf.lib;libtiff.lib;libwebp.lib;opencv_aruco470.lib;opencv_bgsegm470.lib;opencv_bioinspired470.lib;opencv_calib3d470.lib;opencv_ccalib470.lib;opencv_core470.lib;opencv_dnn470.lib;opencv_dnn_superres470.lib;opencv_dnn_objdetect470.lib;opencv_dpm470.lib;opencv_face470.lib;opencv_features2d470.lib;opencv_flann470.lib;opencv_fuzzy470.lib;opencv_hfs470.lib;opencv_highgui470.lib;opencv_imgcodecs470.lib;opencv_imgproc470.lib;opencv_img_hash470.lib;opencv_line_descriptor470.lib;opencv_ml470.lib;opencv_objdetect470.lib;opencv_optflow470.lib;opencv_phase_unwrapping470.lib;opencv_photo470.lib;opencv_plot470.lib;opencv_quality470.lib;opencv_reg470.lib;opencv_rgbd470.lib;opencv_saliency470.lib;opencv_shape470.lib;opencv_stereo470.lib;opencv_stitching470.lib;opencv_structured_light470.lib;opencv_superres470.lib;opencv_surface_matching470.lib;opencv_text470.lib;opencv_tracking470.lib;opencv_video470.lib;opencv_videoio470.lib;opencv_videostab470.lib;opencv_wechat_qrcode470.lib;opencv_xfeatures2d470.lib;opencv_ximgproc470.lib;opencv_xobjdetect470.lib;opencv_xphoto470.lib;quirc.lib;zlib.lib;ws2_32.lib;tesseract41.lib;leptonica-1.81.1.lib;gif.lib;jpeg.lib;libpng16.lib;libwebpmux.lib;lzma.lib;tiff.lib;turbojpeg.lib;webp.lib;webpdecoder.lib;webpdemux.lib;%(AdditionalDependencies)
+ IlmImf.lib;ippicvmt.lib;ippiw.lib;ittnotify.lib;libjpeg-turbo.lib;libopenjp2.lib;libpng.lib;libprotobuf.lib;libtiff.lib;libwebp.lib;opencv_aruco480.lib;opencv_bgsegm480.lib;opencv_bioinspired480.lib;opencv_calib3d480.lib;opencv_ccalib480.lib;opencv_core480.lib;opencv_dnn480.lib;opencv_dnn_superres480.lib;opencv_dnn_objdetect480.lib;opencv_dpm480.lib;opencv_face480.lib;opencv_features2d480.lib;opencv_flann480.lib;opencv_fuzzy480.lib;opencv_hfs480.lib;opencv_highgui480.lib;opencv_imgcodecs480.lib;opencv_imgproc480.lib;opencv_img_hash480.lib;opencv_line_descriptor480.lib;opencv_ml480.lib;opencv_objdetect480.lib;opencv_optflow480.lib;opencv_phase_unwrapping480.lib;opencv_photo480.lib;opencv_plot480.lib;opencv_quality480.lib;opencv_reg480.lib;opencv_rgbd480.lib;opencv_saliency480.lib;opencv_shape480.lib;opencv_stereo480.lib;opencv_stitching480.lib;opencv_structured_light480.lib;opencv_superres480.lib;opencv_surface_matching480.lib;opencv_text480.lib;opencv_tracking480.lib;opencv_video480.lib;opencv_videoio480.lib;opencv_videostab480.lib;opencv_wechat_qrcode480.lib;opencv_xfeatures2d480.lib;opencv_ximgproc480.lib;opencv_xobjdetect480.lib;opencv_xphoto480.lib;quirc.lib;zlib.lib;ws2_32.lib;tesseract53.lib;leptonica-1.83.1.lib;archive.lib;bz2.lib;charset.lib;gif.lib;iconv.lib;jpeg.lib;libcrypto.lib;libcurl.lib;libpng16.lib;libsharpyuv.lib;libssl.lib;libxml2.lib;lz4.lib;lzma.lib;tiff.lib;turbojpeg.lib;zstd.lib;crypt32.lib;%(AdditionalDependencies)
%(IgnoreSpecificDefaultLibraries)
true
NotSet
@@ -179,8 +179,8 @@
copy "$(LocalDebuggerCommand)" "$(SolutionDir)test\OpenCvSharp.Tests\dll\x86\$(TargetFileName)"
copy "$(LocalDebuggerCommand)" "$(SolutionDir)test\OpenCvSharp.Tests\$(TargetFileName)"
-copy "$(SolutionDir)opencv_files\opencv470_win_x86\x86\vc17\bin\opencv_videoio_ffmpeg470.dll" "$(SolutionDir)test\OpenCvSharp.Tests\dll\x86\opencv_videoio_ffmpeg470.dll"
-copy "$(SolutionDir)opencv_files\opencv470_win_x86\x86\vc17\bin\opencv_videoio_ffmpeg470.dll" "$(SolutionDir)test\OpenCvSharp.Tests\opencv_videoio_ffmpeg470.dll"
+copy "$(SolutionDir)opencv_files\opencv480_win_x86\x86\vc17\bin\opencv_videoio_ffmpeg480.dll" "$(SolutionDir)test\OpenCvSharp.Tests\dll\x86\opencv_videoio_ffmpeg480.dll"
+copy "$(SolutionDir)opencv_files\opencv480_win_x86\x86\vc17\bin\opencv_videoio_ffmpeg480.dll" "$(SolutionDir)test\OpenCvSharp.Tests\opencv_videoio_ffmpeg480.dll"
@@ -207,7 +207,7 @@ copy "$(SolutionDir)opencv_files\opencv470_win_x86\x86\vc17\bin\opencv_videoio_f
true
- IlmImf.lib;ippicvmt.lib;ippiw.lib;ittnotify.lib;libopenjp2.lib;libjpeg-turbo.lib;libpng.lib;libprotobuf.lib;libtiff.lib;libwebp.lib;opencv_aruco470.lib;opencv_bgsegm470.lib;opencv_bioinspired470.lib;opencv_calib3d470.lib;opencv_ccalib470.lib;opencv_core470.lib;opencv_dnn470.lib;opencv_dnn_superres470.lib;opencv_dnn_objdetect470.lib;opencv_dpm470.lib;opencv_face470.lib;opencv_features2d470.lib;opencv_flann470.lib;opencv_fuzzy470.lib;opencv_hfs470.lib;opencv_highgui470.lib;opencv_imgcodecs470.lib;opencv_imgproc470.lib;opencv_img_hash470.lib;opencv_line_descriptor470.lib;opencv_ml470.lib;opencv_objdetect470.lib;opencv_optflow470.lib;opencv_phase_unwrapping470.lib;opencv_photo470.lib;opencv_plot470.lib;opencv_quality470.lib;opencv_reg470.lib;opencv_rgbd470.lib;opencv_saliency470.lib;opencv_shape470.lib;opencv_stereo470.lib;opencv_stitching470.lib;opencv_structured_light470.lib;opencv_superres470.lib;opencv_surface_matching470.lib;opencv_text470.lib;opencv_tracking470.lib;opencv_video470.lib;opencv_videoio470.lib;opencv_videostab470.lib;opencv_wechat_qrcode470.lib;opencv_xfeatures2d470.lib;opencv_ximgproc470.lib;opencv_xobjdetect470.lib;opencv_xphoto470.lib;quirc.lib;zlib.lib;ws2_32.lib;tesseract41.lib;leptonica-1.81.1.lib;gif.lib;jpeg.lib;libpng16.lib;libwebpmux.lib;lzma.lib;tiff.lib;turbojpeg.lib;webp.lib;webpdecoder.lib;webpdemux.lib;%(AdditionalDependencies)
+ IlmImf.lib;ippicvmt.lib;ippiw.lib;ittnotify.lib;libopenjp2.lib;libjpeg-turbo.lib;libpng.lib;libprotobuf.lib;libtiff.lib;libwebp.lib;opencv_aruco480.lib;opencv_bgsegm480.lib;opencv_bioinspired480.lib;opencv_calib3d480.lib;opencv_ccalib480.lib;opencv_core480.lib;opencv_dnn480.lib;opencv_dnn_superres480.lib;opencv_dnn_objdetect480.lib;opencv_dpm480.lib;opencv_face480.lib;opencv_features2d480.lib;opencv_flann480.lib;opencv_fuzzy480.lib;opencv_hfs480.lib;opencv_highgui480.lib;opencv_imgcodecs480.lib;opencv_imgproc480.lib;opencv_img_hash480.lib;opencv_line_descriptor480.lib;opencv_ml480.lib;opencv_objdetect480.lib;opencv_optflow480.lib;opencv_phase_unwrapping480.lib;opencv_photo480.lib;opencv_plot480.lib;opencv_quality480.lib;opencv_reg480.lib;opencv_rgbd480.lib;opencv_saliency480.lib;opencv_shape480.lib;opencv_stereo480.lib;opencv_stitching480.lib;opencv_structured_light480.lib;opencv_superres480.lib;opencv_surface_matching480.lib;opencv_text480.lib;opencv_tracking480.lib;opencv_video480.lib;opencv_videoio480.lib;opencv_videostab480.lib;opencv_wechat_qrcode480.lib;opencv_xfeatures2d480.lib;opencv_ximgproc480.lib;opencv_xobjdetect480.lib;opencv_xphoto480.lib;quirc.lib;zlib.lib;ws2_32.lib;tesseract53.lib;leptonica-1.83.1.lib;archive.lib;bz2.lib;charset.lib;gif.lib;iconv.lib;jpeg.lib;libcrypto.lib;libcurl.lib;libpng16.lib;libsharpyuv.lib;libssl.lib;libxml2.lib;lz4.lib;lzma.lib;tiff.lib;turbojpeg.lib;zstd.lib;crypt32.lib;%(AdditionalDependencies)
%(IgnoreSpecificDefaultLibraries)
true
NotSet
@@ -222,8 +222,8 @@ copy "$(SolutionDir)opencv_files\opencv470_win_x86\x86\vc17\bin\opencv_videoio_f
copy "$(LocalDebuggerCommand)" "$(SolutionDir)test\OpenCvSharp.Tests\dll\x64\$(TargetFileName)"
copy "$(LocalDebuggerCommand)" "$(SolutionDir)test\OpenCvSharp.Tests\$(TargetFileName)"
-copy "$(SolutionDir)opencv_files\opencv470_win_x64\x64\vc17\bin\opencv_videoio_ffmpeg470_64.dll" "$(SolutionDir)test\OpenCvSharp.Tests\opencv_videoio_ffmpeg470_64.dll"
-copy "$(SolutionDir)opencv_files\opencv470_win_x64\x64\vc17\bin\opencv_videoio_ffmpeg470_64.dll" "$(SolutionDir)test\OpenCvSharp.Tests\dll\x64\opencv_videoio_ffmpeg470_64.dll"
+copy "$(SolutionDir)opencv_files\opencv480_win_x64\x64\vc17\bin\opencv_videoio_ffmpeg480_64.dll" "$(SolutionDir)test\OpenCvSharp.Tests\opencv_videoio_ffmpeg480_64.dll"
+copy "$(SolutionDir)opencv_files\opencv480_win_x64\x64\vc17\bin\opencv_videoio_ffmpeg480_64.dll" "$(SolutionDir)test\OpenCvSharp.Tests\dll\x64\opencv_videoio_ffmpeg480_64.dll"
diff --git a/src/uwpOpenCvSharpExtern/uwpOpenCvSharpExtern.vcxproj b/src/uwpOpenCvSharpExtern/uwpOpenCvSharpExtern.vcxproj
index aef65a184..3a1286c38 100644
--- a/src/uwpOpenCvSharpExtern/uwpOpenCvSharpExtern.vcxproj
+++ b/src/uwpOpenCvSharpExtern/uwpOpenCvSharpExtern.vcxproj
@@ -103,42 +103,42 @@
$(SolutionDir)src\$(Configuration)\$(MSBuildProjectName)\$(Platform)\
$(Platform)\$(Configuration)\
OpenCvSharpExtern
- $(SolutionDir)\opencv_files\opencv470_uwp_x86\include;$(IncludePath)
- $(SolutionDir)\opencv_files\opencv470_uwp_x86\x86\vc16\lib;$(LibraryPath)
+ $(SolutionDir)\opencv_files\opencv480_uwp_x86\include;$(IncludePath)
+ $(SolutionDir)\opencv_files\opencv480_uwp_x86\x86\vc16\lib;$(LibraryPath)
false
$(SolutionDir)src\$(Configuration)\$(MSBuildProjectName)\$(Platform)\
$(Platform)\$(Configuration)\
OpenCvSharpExtern
- $(SolutionDir)\opencv_files\opencv470_uwp_x86\include;$(IncludePath)
- $(SolutionDir)\opencv_files\opencv470_uwp_x86\x86\vc17\lib;$(LibraryPath)
+ $(SolutionDir)\opencv_files\opencv480_uwp_x86\include;$(IncludePath)
+ $(SolutionDir)\opencv_files\opencv480_uwp_x86\x86\vc17\lib;$(LibraryPath)
false
OpenCvSharpExtern
- $(SolutionDir)\opencv_files\opencv470_uwp_ARM\include;$(IncludePath)
- $(SolutionDir)\opencv_files\opencv470_uwp_ARM\x86\vc16\lib;$(LibraryPath)
+ $(SolutionDir)\opencv_files\opencv480_uwp_ARM\include;$(IncludePath)
+ $(SolutionDir)\opencv_files\opencv480_uwp_ARM\x86\vc16\lib;$(LibraryPath)
false
OpenCvSharpExtern
- $(SolutionDir)\opencv_files\opencv470_uwp_ARM\include;$(IncludePath)
- $(SolutionDir)\opencv_files\opencv470_uwp_ARM\x86\vc17\lib;$(LibraryPath)
+ $(SolutionDir)\opencv_files\opencv480_uwp_ARM\include;$(IncludePath)
+ $(SolutionDir)\opencv_files\opencv480_uwp_ARM\x86\vc17\lib;$(LibraryPath)
$(SolutionDir)src\$(Configuration)\$(MSBuildProjectName)\$(Platform)\
false
OpenCvSharpExtern
- $(SolutionDir)\opencv_files\opencv470_uwp_x64\include;$(IncludePath)
- $(SolutionDir)\opencv_files\opencv470_uwp_x64\x64\vc16\lib;$(LibraryPath)
+ $(SolutionDir)\opencv_files\opencv480_uwp_x64\include;$(IncludePath)
+ $(SolutionDir)\opencv_files\opencv480_uwp_x64\x64\vc16\lib;$(LibraryPath)
$(SolutionDir)src\$(Configuration)\$(MSBuildProjectName)\$(Platform)\
false
OpenCvSharpExtern
- $(SolutionDir)\opencv_files\opencv470_uwp_x64\include;$(IncludePath)
- $(SolutionDir)\opencv_files\opencv470_uwp_x64\x64\vc17\lib;$(LibraryPath)
+ $(SolutionDir)\opencv_files\opencv480_uwp_x64\include;$(IncludePath)
+ $(SolutionDir)\opencv_files\opencv480_uwp_x64\x64\vc17\lib;$(LibraryPath)
$(SolutionDir)src\$(Configuration)\$(MSBuildProjectName)\$(Platform)\
@@ -174,7 +174,7 @@
Console
false
D:\Samples\vcpkg\packages\opencv4_x86-uwp\lib;
- opencv_world470.lib;opencv_img_hash470.lib;WindowsApp.lib;%(AdditionalDependencies)
+ opencv_world480.lib;opencv_img_hash480.lib;WindowsApp.lib;%(AdditionalDependencies)
@@ -207,7 +207,7 @@
Console
false
- opencv_world470.lib;opencv_img_hash470.lib;%(AdditionalDependencies)
+ opencv_world480.lib;opencv_img_hash480.lib;%(AdditionalDependencies)
@@ -240,7 +240,7 @@
Console
false
- opencv_world470.lib;opencv_img_hash470.lib;WindowsApp.lib;%(AdditionalDependencies)
+ opencv_world480.lib;opencv_img_hash480.lib;WindowsApp.lib;%(AdditionalDependencies)
diff --git a/test/OpenCvSharp.Tests/extensions/BitmapConverterTest.cs b/test/OpenCvSharp.Tests.Windows/BitmapConverterTest.cs
similarity index 100%
rename from test/OpenCvSharp.Tests/extensions/BitmapConverterTest.cs
rename to test/OpenCvSharp.Tests.Windows/BitmapConverterTest.cs
diff --git a/test/OpenCvSharp.Tests.Windows/OpenCvSharp.Tests.Windows.csproj b/test/OpenCvSharp.Tests.Windows/OpenCvSharp.Tests.Windows.csproj
index 6246030e6..a980fea19 100644
--- a/test/OpenCvSharp.Tests.Windows/OpenCvSharp.Tests.Windows.csproj
+++ b/test/OpenCvSharp.Tests.Windows/OpenCvSharp.Tests.Windows.csproj
@@ -31,13 +31,7 @@
-
-
-
-
- all
- runtime; build; native; contentfiles; analyzers
-
+
diff --git a/test/OpenCvSharp.Tests/OpenCvSharp.Tests.csproj b/test/OpenCvSharp.Tests/OpenCvSharp.Tests.csproj
index bc445fb95..fd5e4d64a 100644
--- a/test/OpenCvSharp.Tests/OpenCvSharp.Tests.csproj
+++ b/test/OpenCvSharp.Tests/OpenCvSharp.Tests.csproj
@@ -1,4 +1,4 @@
-
+
net6.0;net48
@@ -12,6 +12,7 @@
false
10
enable
+ enable
@@ -36,11 +37,12 @@
-
-
-
-
-
+
+
+
+
+
+
all
runtime; build; native; contentfiles; analyzers
diff --git a/test/OpenCvSharp.Tests/TestBase.cs b/test/OpenCvSharp.Tests/TestBase.cs
index 1d7271fb0..3c9a8e7fd 100644
--- a/test/OpenCvSharp.Tests/TestBase.cs
+++ b/test/OpenCvSharp.Tests/TestBase.cs
@@ -1,11 +1,5 @@
-using System;
-using System.Collections.Generic;
-using System.Diagnostics;
-using System.IO;
+using System.Diagnostics;
using System.Net;
-using System.Net.Http;
-using System.Threading;
-using System.Threading.Tasks;
using Xunit;
[assembly: CollectionBehavior(/*MaxParallelThreads = 2, */DisableTestParallelization = true)]
@@ -17,34 +11,18 @@ namespace OpenCvSharp.Tests;
public abstract class TestBase
{
- private static readonly HttpClient httpClient;
-
static TestBase()
{
- ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => true;
-
#pragma warning disable CA5364
#pragma warning disable CA5386
+ ServicePointManager.ServerCertificateValidationCallback = (_, _, _, _) => true;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
#pragma warning restore CA5364
#pragma warning restore CA5386
-
-#pragma warning disable CA2000
- var handler = new HttpClientHandler
- {
- ServerCertificateCustomValidationCallback = delegate { return true; }
- };
-#pragma warning restore CA2000
- httpClient = new HttpClient(handler)
- {
- Timeout = TimeSpan.FromMinutes(5)
- };
}
- protected static Mat Image(string fileName, ImreadModes modes = ImreadModes.Color)
- {
- return new Mat(Path.Combine("_data", "image", fileName), modes);
- }
+ protected static Mat LoadImage(string fileName, ImreadModes modes = ImreadModes.Color)
+ => new(Path.Combine("_data", "image", fileName), modes);
protected static void ImageEquals(Mat img1, Mat img2)
{
diff --git a/test/OpenCvSharp.Tests/aruco/ArucoTest.cs b/test/OpenCvSharp.Tests/aruco/ArucoTest.cs
index acd0b46c9..e76deebf6 100644
--- a/test/OpenCvSharp.Tests/aruco/ArucoTest.cs
+++ b/test/OpenCvSharp.Tests/aruco/ArucoTest.cs
@@ -33,12 +33,12 @@ public void CreateDetectorParameters()
Assert.Equal(0.35, param.MaxErroneousBitsInBorderRate, 3);
Assert.Equal(5.0, param.MinOtsuStdDev, 3);
Assert.Equal(0.6, param.ErrorCorrectionRate, 3);
- Assert.Equal(0f, param.AprilTagQuadDecimate, 3);
- Assert.Equal(0f, param.AprilTagQuadSigma, 3);
+ Assert.Equal(0f, param.AprilTagQuadDecimate, 1e-3);
+ Assert.Equal(0f, param.AprilTagQuadSigma, 1e-3);
Assert.Equal(5, param.AprilTagMinClusterPixels);
Assert.Equal(10, param.AprilTagMaxNmaxima);
- Assert.Equal(0.175f, param.AprilTagCriticalRad, 3);
- Assert.Equal(10f, param.AprilTagMaxLineFitMse, 3);
+ Assert.Equal(0.175f, param.AprilTagCriticalRad, 1e-3);
+ Assert.Equal(10f, param.AprilTagMaxLineFitMse, 1e-3);
Assert.Equal(0, param.AprilTagDeglitch);
Assert.Equal(5, param.AprilTagMinWhiteBlackDiff);
Assert.False(param.DetectInvertedMarker);
@@ -84,7 +84,7 @@ public void ReadDictionaryFromFile()
[Fact]
public void DetectMarkers()
{
- using var image = Image("markers_6x6_250.png", ImreadModes.Grayscale);
+ using var image = LoadImage("markers_6x6_250.png", ImreadModes.Grayscale);
using var dict = CvAruco.GetPredefinedDictionary(PredefinedDictionaryName.Dict6X6_250);
var param = new DetectorParameters();
@@ -109,7 +109,7 @@ public void DictionaryProperties()
[Fact]
public void DrawDetectedMarker()
{
- using var image = Image("markers_6x6_250.png", ImreadModes.Grayscale);
+ using var image = LoadImage("markers_6x6_250.png", ImreadModes.Grayscale);
using var outputImage = image.CvtColor(ColorConversionCodes.GRAY2RGB);
using var dict = CvAruco.GetPredefinedDictionary(PredefinedDictionaryName.Dict6X6_250);
var param = new DetectorParameters();
@@ -130,7 +130,7 @@ public void DrawDetectedMarker()
[Fact]
public void EstimatePoseSingleMarkers()
{
- using var image = Image("markers_6x6_250.png", ImreadModes.Grayscale);
+ using var image = LoadImage("markers_6x6_250.png", ImreadModes.Grayscale);
using var dict = CvAruco.GetPredefinedDictionary(PredefinedDictionaryName.Dict6X6_250);
var param = new DetectorParameters();
CvAruco.DetectMarkers(image, dict, out var corners, out _, param, out _);
diff --git a/test/OpenCvSharp.Tests/calib3d/Calib3dTest.cs b/test/OpenCvSharp.Tests/calib3d/Calib3dTest.cs
index f7c8beb36..e43b4b8e4 100644
--- a/test/OpenCvSharp.Tests/calib3d/Calib3dTest.cs
+++ b/test/OpenCvSharp.Tests/calib3d/Calib3dTest.cs
@@ -61,8 +61,8 @@ public void CheckChessboard()
{
var patternSize = new Size(10, 7);
- using var image1 = Image("calibration/00.jpg", ImreadModes.Grayscale);
- using var image2 = Image("lenna.png", ImreadModes.Grayscale);
+ using var image1 = LoadImage("calibration/00.jpg", ImreadModes.Grayscale);
+ using var image2 = LoadImage("lenna.png", ImreadModes.Grayscale);
Assert.True(Cv2.CheckChessboard(image1, patternSize));
Assert.False(Cv2.CheckChessboard(image2, patternSize));
}
@@ -72,7 +72,7 @@ public void FindChessboardCorners()
{
var patternSize = new Size(10, 7);
- using var image = Image("calibration/00.jpg");
+ using var image = LoadImage("calibration/00.jpg");
using var corners = new Mat();
bool found = Cv2.FindChessboardCorners(image, patternSize, corners);
@@ -92,7 +92,7 @@ public void FindChessboardCornersSB()
{
var patternSize = new Size(10, 7);
- using var image = Image("calibration/00.jpg");
+ using var image = LoadImage("calibration/00.jpg");
using var corners = new Mat();
bool found = Cv2.FindChessboardCornersSB(image, patternSize, corners);
@@ -120,7 +120,7 @@ public void CalibrateCameraByArray()
{
var patternSize = new Size(10, 7);
- using var image = Image("calibration/00.jpg");
+ using var image = LoadImage("calibration/00.jpg");
using var corners = new Mat();
Cv2.FindChessboardCorners(image, patternSize, corners);
@@ -142,7 +142,7 @@ public void CalibrateCameraByMat()
{
var patternSize = new Size(10, 7);
- using var image = Image("calibration/00.jpg");
+ using var image = LoadImage("calibration/00.jpg");
using var corners = new Mat();
Cv2.FindChessboardCorners(image, patternSize, corners);
@@ -167,7 +167,7 @@ public void FishEyeCalibrate()
{
var patternSize = new Size(10, 7);
- using var image = Image("calibration/00.jpg");
+ using var image = LoadImage("calibration/00.jpg");
using var corners = new Mat();
Cv2.FindChessboardCorners(image, patternSize, corners);
diff --git a/test/OpenCvSharp.Tests/calib3d/StereoBMTest.cs b/test/OpenCvSharp.Tests/calib3d/StereoBMTest.cs
index e581e8484..b77d1de63 100644
--- a/test/OpenCvSharp.Tests/calib3d/StereoBMTest.cs
+++ b/test/OpenCvSharp.Tests/calib3d/StereoBMTest.cs
@@ -8,8 +8,8 @@ public class StereoBMTest : TestBase
[Fact]
public void SimpleCompute()
{
- var left = Image("tsukuba_left.png", ImreadModes.Grayscale);
- var right = Image("tsukuba_right.png", ImreadModes.Grayscale);
+ var left = LoadImage("tsukuba_left.png", ImreadModes.Grayscale);
+ var right = LoadImage("tsukuba_right.png", ImreadModes.Grayscale);
using var sbm = StereoBM.Create();
var disparity = new Mat();
diff --git a/test/OpenCvSharp.Tests/calib3d/StereoSGBMTest.cs b/test/OpenCvSharp.Tests/calib3d/StereoSGBMTest.cs
index a246a52c5..f2d4edeed 100644
--- a/test/OpenCvSharp.Tests/calib3d/StereoSGBMTest.cs
+++ b/test/OpenCvSharp.Tests/calib3d/StereoSGBMTest.cs
@@ -8,8 +8,8 @@ public class StereoSGBMTest : TestBase
[Fact]
public void SimpleCompute()
{
- var left = Image("tsukuba_left.png", ImreadModes.Grayscale);
- var right = Image("tsukuba_right.png", ImreadModes.Grayscale);
+ var left = LoadImage("tsukuba_left.png", ImreadModes.Grayscale);
+ var right = LoadImage("tsukuba_right.png", ImreadModes.Grayscale);
using var sbm = StereoSGBM.Create(0, 32, 5);
var disparity = new Mat();
diff --git a/test/OpenCvSharp.Tests/core/CoreTest.cs b/test/OpenCvSharp.Tests/core/CoreTest.cs
index 79b93cd2b..45456d6bb 100644
--- a/test/OpenCvSharp.Tests/core/CoreTest.cs
+++ b/test/OpenCvSharp.Tests/core/CoreTest.cs
@@ -61,7 +61,7 @@ public void AddScalar()
[Fact]
public void Subtract()
{
- using Mat image = Image("lenna.png");
+ using Mat image = LoadImage("lenna.png");
using Mat dst1 = new ();
using Mat dst2 = new Scalar(255) - image;
Cv2.Subtract(new Scalar(255), image, dst1);
@@ -214,7 +214,7 @@ public void CopyMakeBorder()
// ReSharper disable once InconsistentNaming
public void PSNR()
{
- using var img1 = Image("lenna.png");
+ using var img1 = LoadImage("lenna.png");
using var img2 = new Mat();
Cv2.GaussianBlur(img1, img2, new Size(5, 5), 10);
@@ -258,7 +258,7 @@ public void MinMaxIdx()
[Fact]
public void MergeAndSplit()
{
- using var img = Image("lenna.png");
+ using var img = LoadImage("lenna.png");
Mat[]? planes = null;
try
@@ -302,7 +302,7 @@ public void Compare()
[Fact]
public void Rotate()
{
- using var src = Image("lenna.png");
+ using var src = LoadImage("lenna.png");
using var img90 = new Mat();
Cv2.Rotate(src, img90, RotateFlags.Rotate90Clockwise);
@@ -321,7 +321,7 @@ public void Rotate()
[Fact]
public void Concat()
{
- using var src = Image("lenna.png");
+ using var src = LoadImage("lenna.png");
using var hconcat = new Mat();
using var vconcat = new Mat();
@@ -366,7 +366,7 @@ public void Bitwise()
[Fact]
public void CopyTo()
{
- using var src = Image("lenna.png");
+ using var src = LoadImage("lenna.png");
var dst = new Mat();
Cv2.CopyTo(src, dst);
diff --git a/test/OpenCvSharp.Tests/core/FileStorageTest.cs b/test/OpenCvSharp.Tests/core/FileStorageTest.cs
index 9a9f5c6b7..0279e2e53 100644
--- a/test/OpenCvSharp.Tests/core/FileStorageTest.cs
+++ b/test/OpenCvSharp.Tests/core/FileStorageTest.cs
@@ -64,7 +64,7 @@ public void ReadAndWrite()
using (Mat r = Mat.Eye(3, 3, MatType.CV_64FC1))
using (Mat t = Mat.Ones(3, 1, MatType.CV_64FC1))
- using (Mat lenna = Image("lenna.png"))
+ using (Mat lenna = LoadImage("lenna.png"))
{
fs.Write("R", r);
fs.Write("T", t);
@@ -166,7 +166,7 @@ public void ReadAndWrite()
}
using (var storedLenna = fs["lenna"]?.ReadMat())
- using (var lenna = Image("lenna.png"))
+ using (var lenna = LoadImage("lenna.png"))
{
Assert.NotNull(storedLenna);
#pragma warning disable CS8604
@@ -226,7 +226,7 @@ public void ReadAndWriteInMemory()
using (Mat r = Mat.Eye(3, 3, MatType.CV_64FC1))
using (Mat t = Mat.Ones(3, 1, MatType.CV_64FC1))
- using (Mat lenna = Image("lenna.png"))
+ using (Mat lenna = LoadImage("lenna.png"))
{
fs.Write("R", r);
fs.Write("T", t);
@@ -334,7 +334,7 @@ public void ReadAndWriteInMemory()
}
using (var storedLenna = fs["lenna"]?.ReadMat())
- using (var lenna = Image("lenna.png"))
+ using (var lenna = LoadImage("lenna.png"))
{
Assert.NotNull(storedLenna);
ImageEquals(storedLenna, lenna);
diff --git a/test/OpenCvSharp.Tests/core/MatTest.cs b/test/OpenCvSharp.Tests/core/MatTest.cs
index 8a1c4b01f..ceadde8b9 100644
--- a/test/OpenCvSharp.Tests/core/MatTest.cs
+++ b/test/OpenCvSharp.Tests/core/MatTest.cs
@@ -110,9 +110,9 @@ public void GetSet()
Assert.Equal(new Vec3b(64, 128, 192), mat8UC3.Get(2, 0));
using var mat32FC1 = new Mat(3, 3, MatType.CV_32FC1, new Scalar(3.14159));
- Assert.Equal(3.14159f, mat32FC1.Get(0, 0), 6);
- Assert.Equal(3.14159f, mat32FC1.Get(1, 1), 6);
- Assert.Equal(3.14159f, mat32FC1.Get(2, 2), 6);
+ Assert.Equal(3.14159f, mat32FC1.Get(0, 0), 1e-6);
+ Assert.Equal(3.14159f, mat32FC1.Get(1, 1), 1e-6);
+ Assert.Equal(3.14159f, mat32FC1.Get(2, 2), 1e-6);
mat32FC1.Set(0, 1, 55.5555f);
mat32FC1.Set(1, 2, 55.5555f);
mat32FC1.Set(2, 0, 55.5555f);
@@ -147,9 +147,9 @@ public void At()
Assert.Equal(new Vec3b(7, 8, 9), mat8UC3.At(2, 0));
using var mat32FC1 = new Mat(3, 3, MatType.CV_32FC1, new Scalar(3.14159));
- Assert.Equal(3.14159f, mat32FC1.At(0, 0), 6);
- Assert.Equal(3.14159f, mat32FC1.At(1, 1), 6);
- Assert.Equal(3.14159f, mat32FC1.At(2, 2), 6);
+ Assert.Equal(3.14159f, mat32FC1.At(0, 0), 1e-6);
+ Assert.Equal(3.14159f, mat32FC1.At(1, 1), 1e-6);
+ Assert.Equal(3.14159f, mat32FC1.At(2, 2), 1e-6);
mat32FC1.At(0, 1) = 33.3333f;
mat32FC1.At(1, 2) = 44.4444f;
mat32FC1.At(2, 0) = 55.5555f;
@@ -182,7 +182,7 @@ public void Diag()
[Fact]
public void CopyTo()
{
- using var src = Image("mandrill.png", ImreadModes.Grayscale);
+ using var src = LoadImage("mandrill.png", ImreadModes.Grayscale);
using var dst = new Mat();
using var mask = src.GreaterThan(128);
src.CopyTo(dst, mask);
@@ -194,7 +194,7 @@ public void CopyTo()
[Fact]
public void SetTo()
{
- using var graySrc = Image("mandrill.png", ImreadModes.Grayscale);
+ using var graySrc = LoadImage("mandrill.png", ImreadModes.Grayscale);
using var resultImage = graySrc.Clone();
using var mask = graySrc.InRange(100, 200);
var ret = resultImage.SetTo(0, mask);
@@ -477,8 +477,8 @@ public void MatOfFloatFromArray()
var indexer = m.GetIndexer();
for (int i = 0; i < array.Length; i++)
{
- Assert.Equal(array[i], m.Get(i), 6);
- Assert.Equal(array[i], indexer[i], 6);
+ Assert.Equal(array[i], m.Get(i), 1e-6);
+ Assert.Equal(array[i], indexer[i], 1e-6);
}
}
@@ -493,8 +493,8 @@ public void MatOfFloatFromRectangularArray()
{
for (int j = 0; j < array.GetLength(1); j++)
{
- Assert.Equal(array[i, j], m.Get(i, j), 6);
- Assert.Equal(array[i, j], indexer[i, j], 6);
+ Assert.Equal(array[i, j], m.Get(i, j), 1e-6);
+ Assert.Equal(array[i, j], indexer[i, j], 1e-6);
}
}
}
@@ -1085,7 +1085,7 @@ public void RowMat()
[Fact]
public void RowMatCopyTo()
{
- using var lenna = Image("lenna.png", ImreadModes.Grayscale);
+ using var lenna = LoadImage("lenna.png", ImreadModes.Grayscale);
using var mat = new Mat(lenna.Rows, lenna.Cols, MatType.CV_8UC1, Scalar.All(0));
using var lenna10 = lenna.Row(10);
diff --git a/test/OpenCvSharp.Tests/core/RotatedRectTest.cs b/test/OpenCvSharp.Tests/core/RotatedRectTest.cs
index 8a1e05c11..a2943a3fd 100644
--- a/test/OpenCvSharp.Tests/core/RotatedRectTest.cs
+++ b/test/OpenCvSharp.Tests/core/RotatedRectTest.cs
@@ -21,11 +21,11 @@ public void FromThreeVertexPoints()
var rt2Native = RotatedRect.FromThreeVertexPoints(p[0], p[1], p[2]);
// same as native result
- Assert.Equal(rt2.Angle, rt2Native.Angle, 4);
- Assert.Equal(rt2.Center.X, rt2Native.Center.X, 4);
- Assert.Equal(rt2.Center.Y, rt2Native.Center.Y, 4);
- Assert.Equal(rt2.Size.Width, rt2Native.Size.Width, 4);
- Assert.Equal(rt2.Size.Height, rt2Native.Size.Height, 4);
+ Assert.Equal(rt2.Angle, rt2Native.Angle, 1e-4);
+ Assert.Equal(rt2.Center.X, rt2Native.Center.X, 1e-4);
+ Assert.Equal(rt2.Center.Y, rt2Native.Center.Y, 1e-4);
+ Assert.Equal(rt2.Size.Width, rt2Native.Size.Width, 1e-4);
+ Assert.Equal(rt2.Size.Height, rt2Native.Size.Height, 1e-4);
const double tolerance = 0.0001;
var angleDiff = Math.Abs(rt2.Angle - rt1.Angle) % 90;
diff --git a/test/OpenCvSharp.Tests/core/SizeTest.cs b/test/OpenCvSharp.Tests/core/SizeTest.cs
index eb45a3f9a..572f01093 100644
--- a/test/OpenCvSharp.Tests/core/SizeTest.cs
+++ b/test/OpenCvSharp.Tests/core/SizeTest.cs
@@ -12,7 +12,7 @@ public void Size2f()
Assert.Equal(0.5, obj.Height, 6);
obj = new Size2f(0.5f, 0.5f);
- Assert.Equal(0.5f, obj.Width, 6);
- Assert.Equal(0.5f, obj.Height, 6);
+ Assert.Equal(0.5f, obj.Width, 1e-6);
+ Assert.Equal(0.5f, obj.Height, 1e-6);
}
}
diff --git a/test/OpenCvSharp.Tests/core/UtilityTest.cs b/test/OpenCvSharp.Tests/core/UtilityTest.cs
index ba2c56cc8..7271e13c7 100644
--- a/test/OpenCvSharp.Tests/core/UtilityTest.cs
+++ b/test/OpenCvSharp.Tests/core/UtilityTest.cs
@@ -1,5 +1,4 @@
-using System;
-using Xunit;
+using Xunit;
using Xunit.Abstractions;
namespace OpenCvSharp.Tests.Core;
@@ -20,7 +19,7 @@ public void GetAndSetNumThreads()
// https://docs.opencv.org/3.4/db/de0/group__core__utils.html#gae78625c3c2aa9e0b83ed31b73c6549c0
if(!System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform(System.Runtime.InteropServices.OSPlatform.OSX))
{
- int threads = Cv2.GetNumThreads();
+ var threads = Cv2.GetNumThreads();
Cv2.SetNumThreads(threads + 1);
Assert.Equal(threads + 1, Cv2.GetNumThreads());
@@ -31,10 +30,7 @@ public void GetAndSetNumThreads()
}
[Fact]
- public void GetThreadNum()
- {
- testOutputHelper.WriteLine("GetThreadNum: {0}", Cv2.GetThreadNum());
- }
+ public void GetThreadNum() => testOutputHelper.WriteLine("GetThreadNum: {0}", Cv2.GetThreadNum());
[Fact]
public void GetBuildInformation()
@@ -46,45 +42,35 @@ public void GetBuildInformation()
[Fact]
public void GetVersionString()
{
- Assert.NotEmpty(Cv2.GetVersionString());
- testOutputHelper.WriteLine("GetVersionString: {0}", Cv2.GetVersionString());
+ var v = Cv2.GetVersionString();
+ Assert.NotNull(v);
+ Assert.NotEmpty(v);
+ testOutputHelper.WriteLine("GetVersionString: {0}", v);
}
[Fact]
- public void GetVersionMajor()
- {
- testOutputHelper.WriteLine("GetVersionMajor: {0}", Cv2.GetVersionMajor());
- }
+ public void GetVersionMajor()
+ => testOutputHelper.WriteLine("GetVersionMajor: {0}", Cv2.GetVersionMajor());
[Fact]
- public void GetVersionMinor()
- {
- testOutputHelper.WriteLine("GetVersionMinor: {0}", Cv2.GetVersionMinor());
- }
+ public void GetVersionMinor()
+ => testOutputHelper.WriteLine("GetVersionMinor: {0}", Cv2.GetVersionMinor());
[Fact]
- public void GetVersionRevision()
- {
- testOutputHelper.WriteLine("GetVersionRevision: {0}", Cv2.GetVersionRevision());
- }
+ public void GetVersionRevision()
+ => testOutputHelper.WriteLine("GetVersionRevision: {0}", Cv2.GetVersionRevision());
[Fact]
- public void GetTickCount()
- {
- testOutputHelper.WriteLine("GetTickCount: {0}", Cv2.GetTickCount());
- }
+ public void GetTickCount()
+ => testOutputHelper.WriteLine("GetTickCount: {0}", Cv2.GetTickCount());
[Fact]
- public void GetTickFrequency()
- {
- testOutputHelper.WriteLine("GetTickFrequency: {0}", Cv2.GetTickFrequency());
- }
+ public void GetTickFrequency()
+ => testOutputHelper.WriteLine("GetTickFrequency: {0}", Cv2.GetTickFrequency());
[Fact]
- public void GetCpuTickCount()
- {
- testOutputHelper.WriteLine("GetCpuTickCount: {0}", Cv2.GetCpuTickCount());
- }
+ public void GetCpuTickCount()
+ => testOutputHelper.WriteLine("GetCpuTickCount: {0}", Cv2.GetCpuTickCount());
[Fact]
public void CheckHardwareSupport()
@@ -98,10 +84,7 @@ public void CheckHardwareSupport()
}
[Fact]
- public void GetHardwareFeatureName()
- {
- testOutputHelper.WriteLine(Cv2.GetHardwareFeatureName(0));
- }
+ public void GetHardwareFeatureName() => testOutputHelper.WriteLine(Cv2.GetHardwareFeatureName(0));
[Fact]
public void GetCpuFeaturesLine()
@@ -112,10 +95,7 @@ public void GetCpuFeaturesLine()
[Fact]
// ReSharper disable once IdentifierTypo
- public void GetNumberOfCpus()
- {
- Assert.True(1 <= Cv2.GetNumberOfCpus());
- }
+ public void GetNumberOfCpus() => Assert.True(1 <= Cv2.GetNumberOfCpus());
[Theory]
[InlineData(FormatType.Default)]
diff --git a/test/OpenCvSharp.Tests/dnn/CaffeTest.cs b/test/OpenCvSharp.Tests/dnn/CaffeTest.cs
index 599489406..56c4efb1c 100644
--- a/test/OpenCvSharp.Tests/dnn/CaffeTest.cs
+++ b/test/OpenCvSharp.Tests/dnn/CaffeTest.cs
@@ -35,7 +35,7 @@ public void LoadCaffeModel()
Assert.Equal(1, net.GetLayerId(layerName!));
// Convert Mat to batch of images
- using var img = Image(@"space_shuttle.jpg");
+ using var img = LoadImage(@"space_shuttle.jpg");
using var inputBlob = CvDnn.BlobFromImage(img, 1, new Size(224, 224), new Scalar(104, 117, 123));
net.SetInput(inputBlob, "data");
using var prob = net.Forward("prob");
diff --git a/test/OpenCvSharp.Tests/dnn/TensorflowTest.cs b/test/OpenCvSharp.Tests/dnn/TensorflowTest.cs
index 2bbd9cc87..4cf0eca14 100644
--- a/test/OpenCvSharp.Tests/dnn/TensorflowTest.cs
+++ b/test/OpenCvSharp.Tests/dnn/TensorflowTest.cs
@@ -15,7 +15,7 @@ public class TensorflowTest : TestBase
// ReSharper disable once IdentifierTypo
public void LoadMnistTrainingDataFromFile_NetRecognizesAnImageOfA9Correctly()
{
- using var imgOf9 = Image(Path.Combine("Dnn","MNIST_9.png"), ImreadModes.Grayscale);
+ using var imgOf9 = LoadImage(Path.Combine("Dnn","MNIST_9.png"), ImreadModes.Grayscale);
var img9DataBlob = CvDnn.BlobFromImage(imgOf9, 1f / 255.0f);
var modelPath = Path.Combine("_data", "model", "MNISTTest_tensorflow.pb");
@@ -37,7 +37,7 @@ public void LoadMnistTrainingDataFromFile_NetRecognizesAnImageOfA9Correctly()
// ReSharper disable once IdentifierTypo
public void LoadMnistTrainingDataFromStream_NetRecognizesAnImageOfA5Correctly()
{
- using var imgOf5 = Image(Path.Combine("Dnn", "MNIST_5.png"), ImreadModes.Grayscale);
+ using var imgOf5 = LoadImage(Path.Combine("Dnn", "MNIST_5.png"), ImreadModes.Grayscale);
var img5DataBlob = CvDnn.BlobFromImage(imgOf5, 1f / 255.0f);
var modelPath = Path.Combine("_data", "model", "MNISTTest_tensorflow.pb");
diff --git a/test/OpenCvSharp.Tests/dnn/YoloTest.cs b/test/OpenCvSharp.Tests/dnn/YoloTest.cs
index 839ca5891..b5459247c 100644
--- a/test/OpenCvSharp.Tests/dnn/YoloTest.cs
+++ b/test/OpenCvSharp.Tests/dnn/YoloTest.cs
@@ -40,7 +40,7 @@ public void LoadYoloV2Model()
Assert.False(net!.Empty());
// Convert Mat to batch of images
- using var img = Image(@"space_shuttle.jpg");
+ using var img = LoadImage(@"space_shuttle.jpg");
using var inputBlob = CvDnn.BlobFromImage(img, 1, new Size(224, 224), new Scalar(104, 117, 123));
// Set input blob
net.SetInput(inputBlob, "data");
@@ -70,7 +70,7 @@ public void LoadYoloV3Model()
RunGC();
using (var net = CvDnn.ReadNetFromDarknet(cfgFile, darknetModel))
- using (var img = Image(@"space_shuttle.jpg"))
+ using (var img = LoadImage(@"space_shuttle.jpg"))
{
Assert.NotNull(net);
Assert.False(net!.Empty());
diff --git a/test/OpenCvSharp.Tests/face/FacemarkAAMTest.cs b/test/OpenCvSharp.Tests/face/FacemarkAAMTest.cs
index 316c59ac4..9a9560c78 100644
--- a/test/OpenCvSharp.Tests/face/FacemarkAAMTest.cs
+++ b/test/OpenCvSharp.Tests/face/FacemarkAAMTest.cs
@@ -41,7 +41,7 @@ public void GetFaces()
parameter.Scales = new float[] {2, 4};
using (var facemark = FacemarkAAM.Create(parameter))
- using (var img = Image("lenna.png"))
+ using (var img = LoadImage("lenna.png"))
{
bool ret = facemark.GetFaces(img, out var faces);
Assert.True(ret);
diff --git a/test/OpenCvSharp.Tests/face/LBPHFaceRecognizerTest.cs b/test/OpenCvSharp.Tests/face/LBPHFaceRecognizerTest.cs
index e96866f47..770eb62b9 100644
--- a/test/OpenCvSharp.Tests/face/LBPHFaceRecognizerTest.cs
+++ b/test/OpenCvSharp.Tests/face/LBPHFaceRecognizerTest.cs
@@ -25,7 +25,7 @@ public void CreateAndDispose()
[Fact]
public void TrainAndPredict()
{
- using var image = Image("lenna.png");
+ using var image = LoadImage("lenna.png");
using var grayImage = image.CvtColor(ColorConversionCodes.BGR2GRAY);
using var model = LBPHFaceRecognizer.Create();
using var cascade = new CascadeClassifier("_data/text/haarcascade_frontalface_default.xml");
diff --git a/test/OpenCvSharp.Tests/features2d/BOWImgDescriptorExtractorTest.cs b/test/OpenCvSharp.Tests/features2d/BOWImgDescriptorExtractorTest.cs
index e371a4c18..8a44fb602 100644
--- a/test/OpenCvSharp.Tests/features2d/BOWImgDescriptorExtractorTest.cs
+++ b/test/OpenCvSharp.Tests/features2d/BOWImgDescriptorExtractorTest.cs
@@ -80,7 +80,7 @@ public void RunTest()
{
using var descriptorExtractor = SIFT.Create(500);
using var descriptorMatcher = new BFMatcher();
- using var img = Image("lenna.png");
+ using var img = LoadImage("lenna.png");
KeyPoint[] keypoints;
Mat dictionary;
var tc = new TermCriteria(CriteriaTypes.MaxIter, 100, 0.001d);
diff --git a/test/OpenCvSharp.Tests/features2d/FastFeatureDetectorTest.cs b/test/OpenCvSharp.Tests/features2d/FastFeatureDetectorTest.cs
index a381d0353..161aaa19b 100644
--- a/test/OpenCvSharp.Tests/features2d/FastFeatureDetectorTest.cs
+++ b/test/OpenCvSharp.Tests/features2d/FastFeatureDetectorTest.cs
@@ -24,7 +24,7 @@ public void CreateAndDispose()
public void Detect()
{
KeyPoint[] keyPoints;
- using (var gray = Image("lenna.png", 0))
+ using (var gray = LoadImage("lenna.png", 0))
using (var orb = FastFeatureDetector.Create())
keyPoints = orb.Detect(gray);
diff --git a/test/OpenCvSharp.Tests/features2d/FlannBasedMatcherTest.cs b/test/OpenCvSharp.Tests/features2d/FlannBasedMatcherTest.cs
index a0c191a81..abaaa4367 100644
--- a/test/OpenCvSharp.Tests/features2d/FlannBasedMatcherTest.cs
+++ b/test/OpenCvSharp.Tests/features2d/FlannBasedMatcherTest.cs
@@ -9,8 +9,8 @@ public class FlannBasedMatcherTest : TestBase
[Fact]
public void Mathing()
{
- using var img1 = Image("tsukuba_left.png", ImreadModes.Grayscale);
- using var img2 = Image("tsukuba_right.png", ImreadModes.Grayscale);
+ using var img1 = LoadImage("tsukuba_left.png", ImreadModes.Grayscale);
+ using var img2 = LoadImage("tsukuba_right.png", ImreadModes.Grayscale);
using var orb = ORB.Create(500);
using var descriptor1 = new Mat();
using var descriptor2 = new Mat();
@@ -41,8 +41,8 @@ public void Mathing()
[Fact]
public void MathingWithKDTreeIndexParams()
{
- using var img1 = Image("tsukuba_left.png", ImreadModes.Grayscale);
- using var img2 = Image("tsukuba_right.png", ImreadModes.Grayscale);
+ using var img1 = LoadImage("tsukuba_left.png", ImreadModes.Grayscale);
+ using var img2 = LoadImage("tsukuba_right.png", ImreadModes.Grayscale);
using var orb = ORB.Create(500);
using var descriptor1 = new Mat();
using var descriptor2 = new Mat();
@@ -75,8 +75,8 @@ public void MathingWithKDTreeIndexParams()
[Fact]
public void MathingWithLshIndexParams()
{
- using var img1 = Image("tsukuba_left.png", ImreadModes.Grayscale);
- using var img2 = Image("tsukuba_right.png", ImreadModes.Grayscale);
+ using var img1 = LoadImage("tsukuba_left.png", ImreadModes.Grayscale);
+ using var img2 = LoadImage("tsukuba_right.png", ImreadModes.Grayscale);
using var orb = ORB.Create(500);
using var descriptor1 = new Mat();
using var descriptor2 = new Mat();
diff --git a/test/OpenCvSharp.Tests/features2d/ORBTest.cs b/test/OpenCvSharp.Tests/features2d/ORBTest.cs
index ee24d60e1..c325c5fb7 100644
--- a/test/OpenCvSharp.Tests/features2d/ORBTest.cs
+++ b/test/OpenCvSharp.Tests/features2d/ORBTest.cs
@@ -24,7 +24,7 @@ public void CreateAndDispose()
public void Detect()
{
// This parameter should introduce same result of http://opencv.jp/wordpress/wp-content/uploads/lenna_SURF-150x150.png
- using var gray = Image("lenna.png", 0);
+ using var gray = LoadImage("lenna.png", 0);
using var orb = ORB.Create(500);
var keyPoints = orb.Detect(gray);
@@ -34,7 +34,7 @@ public void Detect()
[Fact]
public void DetectAndCompute()
{
- using (var gray = Image("lenna.png", ImreadModes.Grayscale))
+ using (var gray = LoadImage("lenna.png", ImreadModes.Grayscale))
using (var orb = ORB.Create(500))
using (Mat descriptor = new Mat())
{
diff --git a/test/OpenCvSharp.Tests/features2d/SIFTTest.cs b/test/OpenCvSharp.Tests/features2d/SIFTTest.cs
index 67c3388a8..ff0d264f2 100644
--- a/test/OpenCvSharp.Tests/features2d/SIFTTest.cs
+++ b/test/OpenCvSharp.Tests/features2d/SIFTTest.cs
@@ -26,7 +26,7 @@ public void CreateAndDispose()
public void Detect()
{
KeyPoint[] keyPoints;
- using (var gray = Image("lenna.png", 0))
+ using (var gray = LoadImage("lenna.png", 0))
using (var alg = SIFT.Create(500))
keyPoints = alg.Detect(gray);
diff --git a/test/OpenCvSharp.Tests/highgui/TrackbarTest.cs b/test/OpenCvSharp.Tests/highgui/TrackbarTest.cs
index b95750632..b0815dd21 100644
--- a/test/OpenCvSharp.Tests/highgui/TrackbarTest.cs
+++ b/test/OpenCvSharp.Tests/highgui/TrackbarTest.cs
@@ -11,7 +11,7 @@ public class TrackbarTest : TestBase
//[Apartment(ApartmentState.STA)]
public void RunTest()
{
- using var src = Image(@"lenna.png", ImreadModes.AnyDepth | ImreadModes.AnyColor);
+ using var src = LoadImage(@"lenna.png", ImreadModes.AnyDepth | ImreadModes.AnyColor);
using var dst = new Mat();
src.CopyTo(dst);
diff --git a/test/OpenCvSharp.Tests/img_hash/AverageHashTest.cs b/test/OpenCvSharp.Tests/img_hash/AverageHashTest.cs
index 918c02981..7ccae1456 100644
--- a/test/OpenCvSharp.Tests/img_hash/AverageHashTest.cs
+++ b/test/OpenCvSharp.Tests/img_hash/AverageHashTest.cs
@@ -19,7 +19,7 @@ public void CreateAndDispose()
public void Compute()
{
using (var model = AverageHash.Create())
- using (var img = Image("lenna.png"))
+ using (var img = LoadImage("lenna.png"))
using (var hash = new Mat())
{
model.Compute(img, hash);
@@ -43,7 +43,7 @@ public void Compute()
public void CompareSameImage()
{
using (var model = AverageHash.Create())
- using (var img1 = Image("lenna.png", ImreadModes.Grayscale))
+ using (var img1 = LoadImage("lenna.png", ImreadModes.Grayscale))
{
double hash = model.Compare(img1, img1);
Assert.Equal(0, hash, 6);
@@ -54,8 +54,8 @@ public void CompareSameImage()
public void CompareDifferentImage()
{
using (var model = AverageHash.Create())
- using (var img1 = Image("lenna.png", ImreadModes.Grayscale))
- using (var img2 = Image("building.jpg", ImreadModes.Grayscale))
+ using (var img1 = LoadImage("lenna.png", ImreadModes.Grayscale))
+ using (var img2 = LoadImage("building.jpg", ImreadModes.Grayscale))
{
var size = new Size(256, 256);
using (var scaledImg1 = img1.Resize(size))
diff --git a/test/OpenCvSharp.Tests/img_hash/BlockMeanHashTest.cs b/test/OpenCvSharp.Tests/img_hash/BlockMeanHashTest.cs
index 42b435728..e3f3c1542 100644
--- a/test/OpenCvSharp.Tests/img_hash/BlockMeanHashTest.cs
+++ b/test/OpenCvSharp.Tests/img_hash/BlockMeanHashTest.cs
@@ -23,7 +23,7 @@ public void CreateAndDispose()
public void ComputeMode0()
{
using (var model = BlockMeanHash.Create(BlockMeanHashMode.Mode0))
- using (var img = Image("lenna.png"))
+ using (var img = LoadImage("lenna.png"))
using (var hash = new Mat())
{
model.Compute(img, hash);
@@ -42,7 +42,7 @@ public void ComputeMode0()
public void ComputeMode1()
{
using (var model = BlockMeanHash.Create(BlockMeanHashMode.Mode1))
- using (var img = Image("lenna.png"))
+ using (var img = LoadImage("lenna.png"))
using (var hash = new Mat())
{
model.Compute(img, hash);
@@ -71,7 +71,7 @@ public void ComputeMode1()
public void CompareSameImage(BlockMeanHashMode mode)
{
using (var model = BlockMeanHash.Create(mode))
- using (var img1 = Image("lenna.png", ImreadModes.Grayscale))
+ using (var img1 = LoadImage("lenna.png", ImreadModes.Grayscale))
{
double hash = model.Compare(img1, img1);
Assert.Equal(0, hash, 6);
@@ -84,8 +84,8 @@ public void CompareSameImage(BlockMeanHashMode mode)
public void CompareDifferentImage(BlockMeanHashMode mode)
{
using (var model = BlockMeanHash.Create(mode))
- using (var img1 = Image("lenna.png", ImreadModes.Grayscale))
- using (var img2 = Image("building.jpg", ImreadModes.Grayscale))
+ using (var img1 = LoadImage("lenna.png", ImreadModes.Grayscale))
+ using (var img2 = LoadImage("building.jpg", ImreadModes.Grayscale))
{
var size = new Size(256, 256);
using (var scaledImg1 = img1.Resize(size))
diff --git a/test/OpenCvSharp.Tests/img_hash/ColorMomentHashTest.cs b/test/OpenCvSharp.Tests/img_hash/ColorMomentHashTest.cs
index 0efe52470..209656de2 100644
--- a/test/OpenCvSharp.Tests/img_hash/ColorMomentHashTest.cs
+++ b/test/OpenCvSharp.Tests/img_hash/ColorMomentHashTest.cs
@@ -19,7 +19,7 @@ public void CreateAndDispose()
public void Compute()
{
using (var model = ColorMomentHash.Create())
- using (var img = Image("lenna.png"))
+ using (var img = LoadImage("lenna.png"))
using (var hash = new Mat())
{
model.Compute(img, hash);
@@ -51,7 +51,7 @@ public void Compute()
public void CompareSameImage()
{
using (var model = ColorMomentHash.Create())
- using (var img1 = Image("lenna.png", ImreadModes.Grayscale))
+ using (var img1 = LoadImage("lenna.png", ImreadModes.Grayscale))
{
double hash = model.Compare(img1, img1);
Assert.Equal(0, hash, 6);
@@ -62,8 +62,8 @@ public void CompareSameImage()
public void CompareDifferentImage()
{
using (var model = ColorMomentHash.Create())
- using (var img1 = Image("lenna.png", ImreadModes.Grayscale))
- using (var img2 = Image("building.jpg", ImreadModes.Grayscale))
+ using (var img1 = LoadImage("lenna.png", ImreadModes.Grayscale))
+ using (var img2 = LoadImage("building.jpg", ImreadModes.Grayscale))
{
var size = new Size(256, 256);
using (var scaledImg1 = img1.Resize(size))
diff --git a/test/OpenCvSharp.Tests/img_hash/MarrHildrethHashTest.cs b/test/OpenCvSharp.Tests/img_hash/MarrHildrethHashTest.cs
index 1bd96cc3d..a91c5a551 100644
--- a/test/OpenCvSharp.Tests/img_hash/MarrHildrethHashTest.cs
+++ b/test/OpenCvSharp.Tests/img_hash/MarrHildrethHashTest.cs
@@ -19,7 +19,7 @@ public void CreateAndDispose()
public void Compute()
{
using (var model = MarrHildrethHash.Create())
- using (var img = Image("lenna.png"))
+ using (var img = LoadImage("lenna.png"))
using (var hash = new Mat())
{
model.Compute(img, hash);
@@ -40,7 +40,7 @@ public void Compute()
public void CompareSameImage()
{
using (var model = MarrHildrethHash.Create())
- using (var img1 = Image("lenna.png", ImreadModes.Grayscale))
+ using (var img1 = LoadImage("lenna.png", ImreadModes.Grayscale))
{
double hash = model.Compare(img1, img1);
Assert.Equal(0, hash, 6);
@@ -51,8 +51,8 @@ public void CompareSameImage()
public void CompareDifferentImage()
{
using (var model = MarrHildrethHash.Create())
- using (var img1 = Image("lenna.png", ImreadModes.Grayscale))
- using (var img2 = Image("building.jpg", ImreadModes.Grayscale))
+ using (var img1 = LoadImage("lenna.png", ImreadModes.Grayscale))
+ using (var img2 = LoadImage("building.jpg", ImreadModes.Grayscale))
{
var size = new Size(256, 256);
using (var scaledImg1 = img1.Resize(size))
diff --git a/test/OpenCvSharp.Tests/img_hash/PHashTest.cs b/test/OpenCvSharp.Tests/img_hash/PHashTest.cs
index 05ac3af21..ca712755c 100644
--- a/test/OpenCvSharp.Tests/img_hash/PHashTest.cs
+++ b/test/OpenCvSharp.Tests/img_hash/PHashTest.cs
@@ -19,7 +19,7 @@ public void CreateAndDispose()
public void Compute()
{
using (var model = PHash.Create())
- using (var img = Image("lenna.png"))
+ using (var img = LoadImage("lenna.png"))
using (var hash = new Mat())
{
model.Compute(img, hash);
@@ -43,7 +43,7 @@ public void Compute()
public void CompareSameImage()
{
using (var model = PHash.Create())
- using (var img1 = Image("lenna.png", ImreadModes.Grayscale))
+ using (var img1 = LoadImage("lenna.png", ImreadModes.Grayscale))
{
double hash = model.Compare(img1, img1);
Assert.Equal(0, hash, 6);
@@ -54,8 +54,8 @@ public void CompareSameImage()
public void CompareDifferentImage()
{
using (var model = PHash.Create())
- using (var img1 = Image("lenna.png", ImreadModes.Grayscale))
- using (var img2 = Image("building.jpg", ImreadModes.Grayscale))
+ using (var img1 = LoadImage("lenna.png", ImreadModes.Grayscale))
+ using (var img2 = LoadImage("building.jpg", ImreadModes.Grayscale))
{
var size = new Size(256, 256);
using (var scaledImg1 = img1.Resize(size))
diff --git a/test/OpenCvSharp.Tests/img_hash/RadialVarianceHashTest.cs b/test/OpenCvSharp.Tests/img_hash/RadialVarianceHashTest.cs
index f49961c37..fd15497bb 100644
--- a/test/OpenCvSharp.Tests/img_hash/RadialVarianceHashTest.cs
+++ b/test/OpenCvSharp.Tests/img_hash/RadialVarianceHashTest.cs
@@ -19,7 +19,7 @@ public void CreateAndDispose()
public void Compute()
{
using (var model = RadialVarianceHash.Create())
- using (var img = Image("lenna.png"))
+ using (var img = LoadImage("lenna.png"))
using (var hash = new Mat())
{
model.Compute(img, hash);
@@ -39,7 +39,7 @@ public void Compute()
public void CompareSameImage()
{
using (var model = RadialVarianceHash.Create())
- using (var img1 = Image("lenna.png", ImreadModes.Grayscale))
+ using (var img1 = LoadImage("lenna.png", ImreadModes.Grayscale))
{
var size = new Size(40, 40);
using (var scaledImg1 = img1.Resize(size))
@@ -55,8 +55,8 @@ public void CompareSameImage()
public void CompareDifferentImage()
{
using (var model = RadialVarianceHash.Create())
- using (var img1 = Image("lenna.png", ImreadModes.Grayscale))
- using (var img2 = Image("building.jpg", ImreadModes.Grayscale))
+ using (var img1 = LoadImage("lenna.png", ImreadModes.Grayscale))
+ using (var img2 = LoadImage("building.jpg", ImreadModes.Grayscale))
{
var size = new Size(40, 40);
using (var scaledImg1 = img1.Resize(size))
diff --git a/test/OpenCvSharp.Tests/imgcodecs/ImgCodecsTest.cs b/test/OpenCvSharp.Tests/imgcodecs/ImgCodecsTest.cs
index c727aae82..020c83713 100644
--- a/test/OpenCvSharp.Tests/imgcodecs/ImgCodecsTest.cs
+++ b/test/OpenCvSharp.Tests/imgcodecs/ImgCodecsTest.cs
@@ -1,15 +1,17 @@
-#nullable enable
-using System;
-using System.Drawing;
-using System.Drawing.Imaging;
-using System.Globalization;
-using System.IO;
-using System.Linq;
-using System.Reflection;
-using System.Runtime.InteropServices;
-using System.Threading;
+using System.Runtime.InteropServices;
+using SixLabors.ImageSharp;
+using SixLabors.ImageSharp.Drawing.Processing;
+using SixLabors.ImageSharp.Formats;
+using SixLabors.ImageSharp.Formats.Bmp;
+using SixLabors.ImageSharp.Formats.Jpeg;
+using SixLabors.ImageSharp.Formats.Png;
+using SixLabors.ImageSharp.Formats.Tiff;
+using SixLabors.ImageSharp.PixelFormats;
+using SixLabors.ImageSharp.Processing;
using Xunit;
using Xunit.Abstractions;
+using Color = SixLabors.ImageSharp.Color;
+using Image = SixLabors.ImageSharp.Image;
#pragma warning disable CA1031
@@ -23,22 +25,23 @@ public ImgCodecsTest(ITestOutputHelper testOutputHelper)
{
this.testOutputHelper = testOutputHelper;
}
-
+
[Theory]
[InlineData("building.jpg")]
[InlineData("lenna.png")]
[InlineData("building_mask.bmp")]
public void ImReadSuccess(string fileName)
{
- using (var image = Image(fileName, ImreadModes.Grayscale))
+ using (var image = LoadImage(fileName, ImreadModes.Grayscale))
{
Assert.False(image.Empty());
}
- using (var image = Image(fileName, ImreadModes.Color))
+ // ReSharper disable once RedundantArgumentDefaultValue
+ using (var image = LoadImage(fileName, ImreadModes.Color))
{
Assert.False(image.Empty());
}
- using (var image = Image(fileName, ImreadModes.AnyColor | ImreadModes.AnyDepth))
+ using (var image = LoadImage(fileName, ImreadModes.AnyColor | ImreadModes.AnyDepth))
{
Assert.False(image.Empty());
}
@@ -79,17 +82,19 @@ public void ImReadJapaneseFileName()
// Create test data
{
- using var bitmap = new Bitmap(10, 10, PixelFormat.Format24bppRgb);
- using var graphics = Graphics.FromImage(bitmap);
- graphics.Clear(Color.Red);
- bitmap.Save(fileName, ImageFormat.Png);
+ using var image = new Image(10, 10);
+ image.Mutate(x =>
+ {
+ x.Fill(Color.Red);
+ });
+ image.SaveAsPng(fileName);
}
Assert.True(File.Exists(fileName), $"File '{fileName}' not found");
- using var image = Cv2.ImRead(fileName, ImreadModes.Color);
- Assert.NotNull(image);
- Assert.False(image.Empty());
+ using var mat = Cv2.ImRead(fileName);
+ Assert.NotNull(mat);
+ Assert.False(mat.Empty());
}
// TODO Windows not supported?
@@ -109,14 +114,14 @@ public void ImReadUnicodeFileName()
// at System.Runtime.InteropServices.Marshal.StringToAnsiString(String s, Byte * buffer, Int32 bufferLength, Boolean bestFit, Boolean throwOnUnmappableChar)
Assert.Throws(() =>
{
- using var image = Cv2.ImRead(fileName, ImreadModes.Color);
+ using var image = Cv2.ImRead(fileName);
//Assert.NotNull(image);
//Assert.False(image.Empty());
});
}
else
{
- using var image = Cv2.ImRead(fileName, ImreadModes.Color);
+ using var image = Cv2.ImRead(fileName);
Assert.NotNull(image);
Assert.False(image.Empty());
}
@@ -129,16 +134,16 @@ public void ImReadUnicodeFileName()
[InlineData(".tif")]
public void ImWrite(string ext)
{
- string fileName = $"test_imwrite{ext}";
+ var fileName = $"test_imwrite{ext}";
using (var mat = new Mat(10, 20, MatType.CV_8UC3, Scalar.Blue))
{
Cv2.ImWrite(fileName, mat);
}
- using var bitmap = new Bitmap(fileName);
- Assert.Equal(10, bitmap.Height);
- Assert.Equal(20, bitmap.Width);
+ var imageInfo = Image.Identify(fileName);
+ Assert.Equal(10, imageInfo.Height);
+ Assert.Equal(20, imageInfo.Width);
}
//[LinuxOnlyFact]
@@ -163,9 +168,9 @@ public void ImWriteJapaneseFileName()
Assert.True(File.Exists(fileName), $"File '{fileName}' not found");
- using var bitmap = new Bitmap(fileName);
- Assert.Equal(10, bitmap.Height);
- Assert.Equal(20, bitmap.Width);
+ var imageInfo = Image.Identify(fileName);
+ Assert.Equal(10, imageInfo.Height);
+ Assert.Equal(20, imageInfo.Width);
}
// TODO
@@ -187,10 +192,7 @@ public void ImWriteUnicodeFileName()
// TODO
// Cannot marshal: Encountered unmappable character.
// at System.Runtime.InteropServices.Marshal.StringToAnsiString(String s, Byte * buffer, Int32 bufferLength, Boolean bestFit, Boolean throwOnUnmappableChar)
- Assert.Throws(() =>
- {
- Cv2.ImWrite(fileName, mat);
- });
+ Assert.Throws(() => { Cv2.ImWrite(fileName, mat); });
return;
}
else
@@ -198,19 +200,17 @@ public void ImWriteUnicodeFileName()
Cv2.ImWrite(fileName, mat);
}
}
-
- // TODO fail
+
var file = new FileInfo(fileName);
Assert.True(file.Exists, $"File '{fileName}' not found");
Assert.True(file.Length > 0, $"File size of '{fileName}' == 0");
const string asciiFileName = "_data/image/imwrite_unicode_test.png";
File.Move(fileName, asciiFileName);
- using (var bitmap = new Bitmap(asciiFileName))
- {
- Assert.Equal(10, bitmap.Height);
- Assert.Equal(20, bitmap.Width);
- }
+ var imageInfo = Image.Identify(asciiFileName);
+
+ Assert.Equal(10, imageInfo.Height);
+ Assert.Equal(20, imageInfo.Width);
}
// TODO AccessViolationException
@@ -320,10 +320,8 @@ public void HaveImageReaderUnicode()
[InlineData("foo.png")]
[InlineData("bar.jpg")]
[InlineData("baz.bmp")]
- public void HaveImageWriter(string fileName)
- {
- Assert.True(Cv2.HaveImageWriter(fileName));
- }
+ public void HaveImageWriter(string fileName)
+ => Assert.True(Cv2.HaveImageWriter(fileName));
// TODO
[Fact(Skip = "AccessViolationException")]
@@ -374,17 +372,16 @@ public void HaveImageWriterUnicode()
[InlineData(".bmp")]
public void ImEncode(string ext)
{
- using var mat = Image("lenna.png", ImreadModes.Grayscale);
+ using var mat = LoadImage("lenna.png", ImreadModes.Grayscale);
Assert.False(mat.Empty());
Cv2.ImEncode(ext, mat, out var imageData);
Assert.NotNull(imageData);
- // Can System.Drawing.Bitmap decode the imageData?
- using var stream = new MemoryStream(imageData);
- using var bitmap = new Bitmap(stream);
- Assert.Equal(mat.Rows, bitmap.Height);
- Assert.Equal(mat.Cols, bitmap.Width);
+ // Can ImageSharp decode the imageData?
+ using var image = Image.Load(imageData);
+ Assert.Equal(mat.Rows, image.Height);
+ Assert.Equal(mat.Cols, image.Width);
}
[Theory]
@@ -394,23 +391,26 @@ public void ImEncode(string ext)
[InlineData("Bmp")]
public void ImDecode(string imageFormatName)
{
- var imageFormatProperty =
- typeof(ImageFormat).GetProperty(imageFormatName, BindingFlags.Public | BindingFlags.Static);
- Assert.NotNull(imageFormatProperty);
- var imageFormat = imageFormatProperty!.GetValue(null) as ImageFormat;
- Assert.NotNull(imageFormat);
+ IImageEncoder encoder = imageFormatName switch
+ {
+ "Png" => new PngEncoder(),
+ "Jpeg" => new JpegEncoder(),
+ "Tiff" => new TiffEncoder(),
+ "Bmp" => new BmpEncoder(),
+ _ => throw new ArgumentOutOfRangeException(nameof(imageFormatName), imageFormatName, null)
+ };
- using var bitmap = new Bitmap("_data/image/mandrill.png");
+ using var image = Image.Load("_data/image/mandrill.png");
using var stream = new MemoryStream();
- bitmap.Save(stream, imageFormat!);
+ image.Save(stream, encoder);
var imageData = stream.ToArray();
Assert.NotNull(imageData);
using var mat = Cv2.ImDecode(imageData, ImreadModes.Color);
Assert.NotNull(mat);
Assert.False(mat.Empty());
- Assert.Equal(bitmap.Width, mat.Cols);
- Assert.Equal(bitmap.Height, mat.Rows);
+ Assert.Equal(image.Width, mat.Cols);
+ Assert.Equal(image.Height, mat.Rows);
ShowImagesWhenDebugMode(mat);
}
@@ -459,14 +459,14 @@ public void WriteMultiPagesTiff()
Mat[]? readPages = null;
try
{
- pages = files.Select(f => Image(f)).ToArray();
+ pages = files.Select(f => LoadImage(f)).ToArray();
Assert.True(Cv2.ImWrite("multi.tiff", pages), "imwrite failed");
Assert.True(Cv2.ImReadMulti("multi.tiff", out readPages), "imreadmulti failed");
Assert.NotEmpty(readPages);
Assert.Equal(pages.Length, readPages.Length);
- for (int i = 0; i < pages.Length; i++)
+ for (var i = 0; i < pages.Length; i++)
{
ImageEquals(pages[i], readPages[i]);
}
@@ -485,15 +485,17 @@ public void WriteMultiPagesTiff()
private static void CreateDummyImageFile(string path)
{
- Path.GetFullPath(path);
+ _ = Path.GetFullPath(path);
var tempFileName = Path.GetTempFileName();
{
- using var bitmap = new Bitmap(10, 10, PixelFormat.Format24bppRgb);
- using var graphics = Graphics.FromImage(bitmap);
- graphics.Clear(Color.Red);
- // GDI+ does not support Unicode file name
- bitmap.Save(tempFileName, ImageFormat.Png);
+
+ using var image = new Image(10, 10);
+ image.Mutate(x =>
+ {
+ x.Fill(Color.Red);
+ });
+ image.SaveAsPng(tempFileName);
}
#if NET48
@@ -503,7 +505,7 @@ private static void CreateDummyImageFile(string path)
}
File.Move(tempFileName, path);
#else
- File.Move(tempFileName, path, true);
+ File.Move(tempFileName, path, true);
#endif
Assert.True(File.Exists(path), $"File '{path}' not found");
}
diff --git a/test/OpenCvSharp.Tests/imgproc/CLAHETest.cs b/test/OpenCvSharp.Tests/imgproc/CLAHETest.cs
index c1540a451..c8baf4865 100644
--- a/test/OpenCvSharp.Tests/imgproc/CLAHETest.cs
+++ b/test/OpenCvSharp.Tests/imgproc/CLAHETest.cs
@@ -8,7 +8,7 @@ public class CLAHETest : TestBase
[Fact]
public void Run()
{
- using var src = Image("lenna.png", ImreadModes.Grayscale);
+ using var src = LoadImage("lenna.png", ImreadModes.Grayscale);
using var dst = new Mat();
using var clahe = Cv2.CreateCLAHE();
clahe.Apply(src, dst);
diff --git a/test/OpenCvSharp.Tests/imgproc/ConnectedComponentsTest.cs b/test/OpenCvSharp.Tests/imgproc/ConnectedComponentsTest.cs
index 8e50386ae..03c41f44f 100644
--- a/test/OpenCvSharp.Tests/imgproc/ConnectedComponentsTest.cs
+++ b/test/OpenCvSharp.Tests/imgproc/ConnectedComponentsTest.cs
@@ -11,7 +11,7 @@ public class ConnectedComponentsTest : TestBase
[InlineData(PixelConnectivity.Connectivity8, ConnectedComponentsAlgorithmsTypes.GRANA)]
public void Run(PixelConnectivity connectivity, ConnectedComponentsAlgorithmsTypes algorithmType)
{
- using var src = Image("alphabet.png", ImreadModes.Grayscale);
+ using var src = LoadImage("alphabet.png", ImreadModes.Grayscale);
using var binary = new Mat();
Cv2.Threshold(src, binary, 128, 255, ThresholdTypes.BinaryInv);
ShowImagesWhenDebugMode(src, binary);
diff --git a/test/OpenCvSharp.Tests/imgproc/ImgProcTest.cs b/test/OpenCvSharp.Tests/imgproc/ImgProcTest.cs
index 03faffe37..2e3103764 100644
--- a/test/OpenCvSharp.Tests/imgproc/ImgProcTest.cs
+++ b/test/OpenCvSharp.Tests/imgproc/ImgProcTest.cs
@@ -13,7 +13,7 @@ public class ImgProcTest : TestBase
[Fact]
public void BuildPyramidTest()
{
- using var src = Image("lenna.png");
+ using var src = LoadImage("lenna.png");
using var dst = new VectorOfMat();
Cv2.BuildPyramid(src, dst, 2);
Assert.Equal(3, dst.Size);
@@ -74,8 +74,8 @@ public void WarpAffineBigImage()
[Fact]
public void BlendLinear()
{
- using var src1 = Image("tsukuba_left.png");
- using var src2 = Image("tsukuba_right.png");
+ using var src1 = LoadImage("tsukuba_left.png");
+ using var src2 = LoadImage("tsukuba_right.png");
using var weights = new Mat(src1.Size(), MatType.CV_32FC1, Scalar.All(0.5));
using var dst = new Mat();
@@ -89,7 +89,7 @@ public void BlendLinear()
[Fact]
public void Demosaicing()
{
- using var src = Image("lenna.png", ImreadModes.Grayscale);
+ using var src = LoadImage("lenna.png", ImreadModes.Grayscale);
using var dst = new Mat();
Cv2.Demosaicing(src, dst, ColorConversionCodes.BayerBG2GRAY);
@@ -134,14 +134,14 @@ public void BoxPoints()
var points = Cv2.BoxPoints(rotatedRect);
Assert.Equal(4, points.Length);
- Assert.Equal(4.932f, points[0].X, 3);
- Assert.Equal(14.931f, points[0].Y, 3);
- Assert.Equal(5.069f, points[1].X, 3);
- Assert.Equal(4.932f, points[1].Y, 3);
- Assert.Equal(15.068f, points[2].X, 3);
- Assert.Equal(5.069f, points[2].Y, 3);
- Assert.Equal(14.931f, points[3].X, 3);
- Assert.Equal(15.068f, points[3].Y, 3);
+ Assert.Equal(4.932f, points[0].X, 1e-3);
+ Assert.Equal(14.931f, points[0].Y, 1e-3);
+ Assert.Equal(5.069f, points[1].X, 1e-3);
+ Assert.Equal(4.932f, points[1].Y, 1e-3);
+ Assert.Equal(15.068f, points[2].X, 1e-3);
+ Assert.Equal(5.069f, points[2].Y, 1e-3);
+ Assert.Equal(14.931f, points[3].X, 1e-3);
+ Assert.Equal(15.068f, points[3].Y, 1e-3);
}
[Fact]
@@ -150,8 +150,8 @@ public void MinEnclosingCircle()
var points = new[] { new Point2f(0, 0), new Point2f(10, 0), new Point2f(10, 10), new Point2f(0, 10), };
Cv2.MinEnclosingCircle(points, out var center, out var radius);
- Assert.Equal(5f, center.X, 3);
- Assert.Equal(5f, center.Y, 3);
+ Assert.Equal(5f, center.X, 1e-3);
+ Assert.Equal(5f, center.Y, 1e-3);
Assert.Equal(5 * Math.Sqrt(2), radius, 3);
}
@@ -162,12 +162,12 @@ public void MinEnclosingTriangle()
var area = Cv2.MinEnclosingTriangle(points, out var triangle);
Assert.Equal(3, triangle.Length);
- Assert.Equal(0f, triangle[0].X, 3);
- Assert.Equal(-10f, triangle[0].Y, 3);
- Assert.Equal(0f, triangle[1].X, 3);
- Assert.Equal(10f, triangle[1].Y, 3);
- Assert.Equal(20f, triangle[2].X, 3);
- Assert.Equal(10f, triangle[2].Y, 3);
+ Assert.Equal(0f, triangle[0].X, 1e-3);
+ Assert.Equal(-10f, triangle[0].Y, 1e-3);
+ Assert.Equal(0f, triangle[1].X, 1e-3);
+ Assert.Equal(10f, triangle[1].Y, 1e-3);
+ Assert.Equal(20f, triangle[2].X, 1e-3);
+ Assert.Equal(10f, triangle[2].Y, 1e-3);
Assert.Equal(200f, area, 3);
}
@@ -289,11 +289,11 @@ public void FitEllipse()
foreach (var e in ellipse)
{
- Assert.Equal(5f, e.Center.X, 3);
- Assert.Equal(5f, e.Center.Y, 3);
- Assert.Equal(11.547f, e.Size.Width, 3);
- Assert.Equal(20f, e.Size.Height, 3);
- Assert.Equal(0f, e.Angle, 3);
+ Assert.Equal(5f, e.Center.X, 1e-3);
+ Assert.Equal(5f, e.Center.Y, 1e-3);
+ Assert.Equal(11.547f, e.Size.Width, 1e-3);
+ Assert.Equal(20f, e.Size.Height, 1e-3);
+ Assert.Equal(0f, e.Angle, 1e-3);
}
}
@@ -357,8 +357,8 @@ public void FitLineByMat()
Assert.Equal(Math.Sqrt(2) / 2, dst.Get(0), 3);
Assert.Equal(Math.Sqrt(2) / 2, dst.Get(1), 3);
- Assert.Equal(5, dst.Get(2), 3);
- Assert.Equal(5, dst.Get(3), 3);
+ Assert.Equal(5, dst.Get(2), 1e-3);
+ Assert.Equal(5, dst.Get(3), 1e-3);
}
}
@@ -533,7 +533,7 @@ private static void TestImage(Mat img, Vec3b[,] expected)
[Fact]
public void ApplyColorMap()
{
- using var src = Image("building.jpg", ImreadModes.Color);
+ using var src = LoadImage("building.jpg", ImreadModes.Color);
using var dst = new Mat();
Cv2.ApplyColorMap(src, dst, ColormapTypes.Cool);
@@ -548,7 +548,7 @@ public void ApplyColorMap()
[Fact]
public void CornerHarris()
{
- using var src = Image("building.jpg", ImreadModes.Grayscale);
+ using var src = LoadImage("building.jpg", ImreadModes.Grayscale);
using var corners = new Mat();
using var dst = new Mat();
Cv2.CornerHarris(src, corners, 2, 3, 0.04);
@@ -564,7 +564,7 @@ public void CornerHarris()
[Fact]
public void CornerMinEigenVal()
{
- using var src = Image("building.jpg", ImreadModes.Grayscale);
+ using var src = LoadImage("building.jpg", ImreadModes.Grayscale);
using var corners = new Mat();
using var dst = new Mat();
Cv2.CornerMinEigenVal(src, corners, 2, 3, BorderTypes.Reflect);
@@ -580,7 +580,7 @@ public void CornerMinEigenVal()
[Fact]
public void FindContours()
{
- using var src = Image("markers_6x6_250.png", ImreadModes.Grayscale);
+ using var src = LoadImage("markers_6x6_250.png", ImreadModes.Grayscale);
Cv2.BitwiseNot(src, src);
Cv2.FindContours(
src,
diff --git a/test/OpenCvSharp.Tests/objdetect/QRCodeDetectorTest.cs b/test/OpenCvSharp.Tests/objdetect/QRCodeDetectorTest.cs
index 2a23b4acb..722b3aa6c 100644
--- a/test/OpenCvSharp.Tests/objdetect/QRCodeDetectorTest.cs
+++ b/test/OpenCvSharp.Tests/objdetect/QRCodeDetectorTest.cs
@@ -26,14 +26,14 @@ public void ExplicitlyDetectAndDecode()
bool detected = obj.Detect(withQr, out var points);
Assert.True(detected);
Assert.Equal(4, points.Length);
- Assert.Equal(102, points[0].X, 6);
- Assert.Equal(201, points[0].Y, 6);
- Assert.Equal(199, points[1].X, 6);
- Assert.Equal(201, points[1].Y, 6);
- Assert.Equal(199, points[2].X, 6);
- Assert.Equal(299, points[2].Y, 6);
- Assert.Equal(102, points[3].X, 6);
- Assert.Equal(299, points[3].Y, 6);
+ Assert.Equal(102, points[0].X, 1e-6);
+ Assert.Equal(201, points[0].Y, 1e-6);
+ Assert.Equal(199, points[1].X, 1e-6);
+ Assert.Equal(201, points[1].Y, 1e-6);
+ Assert.Equal(199, points[2].X, 1e-6);
+ Assert.Equal(299, points[2].Y, 1e-6);
+ Assert.Equal(102, points[3].X, 1e-6);
+ Assert.Equal(299, points[3].Y, 1e-6);
using var straightQrCode = new Mat();
obj.Decode(withQr, points);
@@ -55,14 +55,14 @@ public void DetectAndDecode()
using var straightQrCode = new Mat();
var decodedString = obj.DetectAndDecode(withQr, out var points, straightQrCode);
Assert.Equal(4, points.Length);
- Assert.Equal(102, points[0].X, 6);
- Assert.Equal(201, points[0].Y, 6);
- Assert.Equal(199, points[1].X, 6);
- Assert.Equal(201, points[1].Y, 6);
- Assert.Equal(199, points[2].X, 6);
- Assert.Equal(299, points[2].Y, 6);
- Assert.Equal(102, points[3].X, 6);
- Assert.Equal(299, points[3].Y, 6);
+ Assert.Equal(102, points[0].X, 1e-6);
+ Assert.Equal(201, points[0].Y, 1e-6);
+ Assert.Equal(199, points[1].X, 1e-6);
+ Assert.Equal(201, points[1].Y, 1e-6);
+ Assert.Equal(199, points[2].X, 1e-6);
+ Assert.Equal(299, points[2].Y, 1e-6);
+ Assert.Equal(102, points[3].X, 1e-6);
+ Assert.Equal(299, points[3].Y, 1e-6);
Assert.False(straightQrCode.Empty());
Assert.Equal("https://github.com/opencv/opencv", decodedString);
@@ -72,7 +72,7 @@ public void DetectAndDecode()
public void DecodeSinglebyteString()
{
using var obj = new QRCodeDetector();
- using var withQr = Image("qr_singlebyte_letters.png");
+ using var withQr = LoadImage("qr_singlebyte_letters.png");
var decodedString = obj.DetectAndDecode(withQr, out var points);
@@ -84,7 +84,7 @@ public void DecodeSinglebyteString()
public void DecodeMultibyteString()
{
using var obj = new QRCodeDetector();
- using var withQr = Image("qr_multibyte_letters.png");
+ using var withQr = LoadImage("qr_multibyte_letters.png");
var decodedString = obj.DetectAndDecode(withQr, out var points);
@@ -97,7 +97,7 @@ public void ExplicitlyDetectMulti()
{
using var obj = new QRCodeDetector();
- using var withQr = Image("qr_multi.png");
+ using var withQr = LoadImage("qr_multi.png");
using var pointsMat = new Mat();
ShowImagesWhenDebugMode(withQr);
@@ -131,7 +131,7 @@ public void ExplicitlyDecodeMulti()
using var obj = new QRCodeDetector();
- using var withQr = Image("qr_multi.png");
+ using var withQr = LoadImage("qr_multi.png");
using var pointsMat = new Mat();
ShowImagesWhenDebugMode(withQr);
@@ -158,7 +158,7 @@ public void ExplicitlyDecodeMulti()
[Fact]
public void EmptyDetectMulti()
{
- var lenna = Image("lenna.png");
+ var lenna = LoadImage("lenna.png");
using var obj = new QRCodeDetector();
@@ -169,8 +169,8 @@ public void EmptyDetectMulti()
private static Mat ImageWithQrCode(int x, int y, out int qrWidth, out int qrHeight)
{
- var lenna = Image("lenna.png");
- using var qr = Image("qr.png");
+ var lenna = LoadImage("lenna.png");
+ using var qr = LoadImage("qr.png");
Assert.False(qr.Empty(), "Mat qr is empty.");
qrWidth = qr.Width;
qrHeight = qr.Height;
@@ -193,8 +193,8 @@ private static void AreEquivalent(IEnumerable expectedPoints, IEnumerab
foreach (var (p1, p2) in orderedExpectedPoints.Zip(orderedActualPoints, Tuple.Create))
{
- Assert.Equal(p1.X, p2.X, 6);
- Assert.Equal(p1.Y, p2.Y, 6);
+ Assert.Equal(p1.X, p2.X, 1e-6);
+ Assert.Equal(p1.Y, p2.Y, 1e-6);
}
}
diff --git a/test/OpenCvSharp.Tests/photo/TonemapDragoTest.cs b/test/OpenCvSharp.Tests/photo/TonemapDragoTest.cs
index 3db421fa3..597a5585e 100644
--- a/test/OpenCvSharp.Tests/photo/TonemapDragoTest.cs
+++ b/test/OpenCvSharp.Tests/photo/TonemapDragoTest.cs
@@ -7,7 +7,7 @@ public class TonemapDragoTest : TestBase
[Fact]
public void Process()
{
- using var src = Image("lenna.png");
+ using var src = LoadImage("lenna.png");
using var dst = new Mat();
using var tonemap = TonemapDrago.Create();
@@ -24,12 +24,12 @@ public void Process()
public void Properties()
{
using var tonemap = TonemapDrago.Create(2.2f, 1.5f, 0.95f);
- Assert.Equal(1.5f, tonemap.Saturation, 3);
- Assert.Equal(0.95f, tonemap.Bias, 3);
+ Assert.Equal(1.5f, tonemap.Saturation, 1e-3);
+ Assert.Equal(0.95f, tonemap.Bias, 1e-3);
tonemap.Saturation = 5.8f;
tonemap.Bias = 0.5f;
- Assert.Equal(5.8f, tonemap.Saturation, 3);
- Assert.Equal(0.5f, tonemap.Bias, 3);
+ Assert.Equal(5.8f, tonemap.Saturation, 1e-3);
+ Assert.Equal(0.5f, tonemap.Bias, 1e-3);
}
}
diff --git a/test/OpenCvSharp.Tests/photo/TonemapMantiukTest.cs b/test/OpenCvSharp.Tests/photo/TonemapMantiukTest.cs
index dccf03d68..fa5f63984 100644
--- a/test/OpenCvSharp.Tests/photo/TonemapMantiukTest.cs
+++ b/test/OpenCvSharp.Tests/photo/TonemapMantiukTest.cs
@@ -7,7 +7,7 @@ public class TonemapMantiukTest : TestBase
[Fact]
public void Process()
{
- using var src = Image("lenna.png");
+ using var src = LoadImage("lenna.png");
using var dst = new Mat();
using var tonemap = TonemapMantiuk.Create();
@@ -24,12 +24,12 @@ public void Process()
public void Properties()
{
using var tonemap = TonemapMantiuk.Create(2.2f, 1.5f, 1.8f);
- Assert.Equal(1.5f, tonemap.Scale, 3);
- Assert.Equal(1.8f, tonemap.Saturation, 3);
+ Assert.Equal(1.5f, tonemap.Scale, 1e-3);
+ Assert.Equal(1.8f, tonemap.Saturation, 1e-3);
tonemap.Scale = 0.5f;
tonemap.Saturation = 0.8f;
- Assert.Equal(0.5f, tonemap.Scale, 3);
- Assert.Equal(0.8f, tonemap.Saturation, 3);
+ Assert.Equal(0.5f, tonemap.Scale, 1e-3);
+ Assert.Equal(0.8f, tonemap.Saturation, 1e-3);
}
}
diff --git a/test/OpenCvSharp.Tests/photo/TonemapReinhardTest.cs b/test/OpenCvSharp.Tests/photo/TonemapReinhardTest.cs
index 7dbdde245..ac1599f11 100644
--- a/test/OpenCvSharp.Tests/photo/TonemapReinhardTest.cs
+++ b/test/OpenCvSharp.Tests/photo/TonemapReinhardTest.cs
@@ -7,7 +7,7 @@ public class TonemapReinhardTest : TestBase
[Fact]
public void Process()
{
- using var src = Image("lenna.png");
+ using var src = LoadImage("lenna.png");
using var dst = new Mat();
using var tonemap = TonemapReinhard.Create();
@@ -24,15 +24,15 @@ public void Process()
public void Properties()
{
using var tonemap = TonemapReinhard.Create(2.2f, 1.1f, 0.8f, 0.7f);
- Assert.Equal(1.1f, tonemap.Intensity, 3);
- Assert.Equal(0.8f, tonemap.LightAdaptation, 3);
- Assert.Equal(0.7f, tonemap.ColorAdaptation, 3);
+ Assert.Equal(1.1f, tonemap.Intensity, 1e-3);
+ Assert.Equal(0.8f, tonemap.LightAdaptation, 1e-3);
+ Assert.Equal(0.7f, tonemap.ColorAdaptation, 1e-3);
tonemap.Intensity = 1.8f;
tonemap.LightAdaptation = 0.5f;
tonemap.ColorAdaptation = 0.4f;
- Assert.Equal(1.8f, tonemap.Intensity, 3);
- Assert.Equal(0.5f, tonemap.LightAdaptation, 3);
- Assert.Equal(0.4f, tonemap.ColorAdaptation, 3);
+ Assert.Equal(1.8f, tonemap.Intensity, 1e-3);
+ Assert.Equal(0.5f, tonemap.LightAdaptation, 1e-3);
+ Assert.Equal(0.4f, tonemap.ColorAdaptation, 1e-3);
}
}
diff --git a/test/OpenCvSharp.Tests/photo/TonemapTest.cs b/test/OpenCvSharp.Tests/photo/TonemapTest.cs
index 5b87627e6..34b7b23f9 100644
--- a/test/OpenCvSharp.Tests/photo/TonemapTest.cs
+++ b/test/OpenCvSharp.Tests/photo/TonemapTest.cs
@@ -7,7 +7,7 @@ public class TonemapTest : TestBase
[Fact]
public void Process()
{
- using var src = Image("lenna.png");
+ using var src = LoadImage("lenna.png");
using var dst = new Mat();
using var tonemap = Tonemap.Create(2.2f);
@@ -24,9 +24,9 @@ public void Process()
public void Properties()
{
using var tonemap = Tonemap.Create(2.2f);
- Assert.Equal(2.2f, tonemap.Gamma, 3);
+ Assert.Equal(2.2f, tonemap.Gamma, 1e-3);
tonemap.Gamma = 0.5f;
- Assert.Equal(0.5f, tonemap.Gamma, 3);
+ Assert.Equal(0.5f, tonemap.Gamma, 1e-3);
}
}
diff --git a/test/OpenCvSharp.Tests/quality/QualityBRISQUETest.cs b/test/OpenCvSharp.Tests/quality/QualityBRISQUETest.cs
index 874bf4694..a1ba294e3 100644
--- a/test/OpenCvSharp.Tests/quality/QualityBRISQUETest.cs
+++ b/test/OpenCvSharp.Tests/quality/QualityBRISQUETest.cs
@@ -13,7 +13,7 @@ public class QualityBRISQUETest : TestBase
[Fact]
public void Compute()
{
- using (var refImage = Image("lenna.png"))
+ using (var refImage = LoadImage("lenna.png"))
using (var targetImage = new Mat())
using (var psnr = QualityBRISQUE.Create(ModelFile, RangeFile))
{
@@ -34,7 +34,7 @@ public void Compute()
[Fact]
public void StaticCompute()
{
- using (var refImage = Image("lenna.png"))
+ using (var refImage = LoadImage("lenna.png"))
using (var targetImage = new Mat())
{
Cv2.GaussianBlur(refImage, targetImage, new Size(5, 5), 15);
diff --git a/test/OpenCvSharp.Tests/quality/QualityGMSDTest.cs b/test/OpenCvSharp.Tests/quality/QualityGMSDTest.cs
index 857b42aa4..3511bf818 100644
--- a/test/OpenCvSharp.Tests/quality/QualityGMSDTest.cs
+++ b/test/OpenCvSharp.Tests/quality/QualityGMSDTest.cs
@@ -8,7 +8,7 @@ public class QualityGMSDTest : TestBase
[Fact]
public void Compute()
{
- using (var refImage = Image("lenna.png"))
+ using (var refImage = LoadImage("lenna.png"))
using (var targetImage = new Mat())
using (var psnr = QualityGMSD.Create(refImage))
{
@@ -24,7 +24,7 @@ public void Compute()
[Fact]
public void StaticCompute()
{
- using (var refImage = Image("lenna.png"))
+ using (var refImage = LoadImage("lenna.png"))
using (var targetImage = new Mat())
{
Cv2.GaussianBlur(refImage, targetImage, new Size(5, 5), 15);
diff --git a/test/OpenCvSharp.Tests/quality/QualityMSETest.cs b/test/OpenCvSharp.Tests/quality/QualityMSETest.cs
index b5000a9a9..f4f80fb77 100644
--- a/test/OpenCvSharp.Tests/quality/QualityMSETest.cs
+++ b/test/OpenCvSharp.Tests/quality/QualityMSETest.cs
@@ -8,7 +8,7 @@ public class QualityMSETest : TestBase
[Fact]
public void Compute()
{
- using (var refImage = Image("lenna.png"))
+ using (var refImage = LoadImage("lenna.png"))
using (var targetImage = new Mat())
using (var psnr = QualityMSE.Create(refImage))
{
@@ -24,7 +24,7 @@ public void Compute()
[Fact]
public void StaticCompute()
{
- using (var refImage = Image("lenna.png"))
+ using (var refImage = LoadImage("lenna.png"))
using (var targetImage = new Mat())
{
Cv2.GaussianBlur(refImage, targetImage, new Size(5, 5), 15);
diff --git a/test/OpenCvSharp.Tests/quality/QualityPSNRTest.cs b/test/OpenCvSharp.Tests/quality/QualityPSNRTest.cs
index e58692e09..d5e3ef86c 100644
--- a/test/OpenCvSharp.Tests/quality/QualityPSNRTest.cs
+++ b/test/OpenCvSharp.Tests/quality/QualityPSNRTest.cs
@@ -11,7 +11,7 @@ public class QualityPSNRTest : TestBase
[Fact]
public void Compute()
{
- using (var refImage = Image("lenna.png"))
+ using (var refImage = LoadImage("lenna.png"))
using (var targetImage = new Mat())
using (var psnr = QualityPSNR.Create(refImage))
{
@@ -27,7 +27,7 @@ public void Compute()
[Fact]
public void StaticCompute()
{
- using (var refImage = Image("lenna.png"))
+ using (var refImage = LoadImage("lenna.png"))
using (var targetImage = new Mat())
{
Cv2.GaussianBlur(refImage, targetImage, new Size(5, 5), 15);
@@ -42,7 +42,7 @@ public void StaticCompute()
[Fact]
public void PropertyMaxPixelValue()
{
- using (var refImage = Image("lenna.png"))
+ using (var refImage = LoadImage("lenna.png"))
using (var psnr = QualityPSNR.Create(refImage))
{
const double value = 123.456;
diff --git a/test/OpenCvSharp.Tests/quality/QualitySSIMTest.cs b/test/OpenCvSharp.Tests/quality/QualitySSIMTest.cs
index c0bd42ef3..a9cee82c2 100644
--- a/test/OpenCvSharp.Tests/quality/QualitySSIMTest.cs
+++ b/test/OpenCvSharp.Tests/quality/QualitySSIMTest.cs
@@ -8,7 +8,7 @@ public class QualitySSIMTest : TestBase
[Fact]
public void Compute()
{
- using (var refImage = Image("lenna.png"))
+ using (var refImage = LoadImage("lenna.png"))
using (var targetImage = new Mat())
using (var psnr = QualitySSIM.Create(refImage))
{
@@ -24,7 +24,7 @@ public void Compute()
[Fact]
public void StaticCompute()
{
- using (var refImage = Image("lenna.png"))
+ using (var refImage = LoadImage("lenna.png"))
using (var targetImage = new Mat())
{
Cv2.GaussianBlur(refImage, targetImage, new Size(5, 5), 15);
diff --git a/test/OpenCvSharp.Tests/stitching/CvDetailTest.cs b/test/OpenCvSharp.Tests/stitching/CvDetailTest.cs
index e7891aef1..83ed3cef7 100644
--- a/test/OpenCvSharp.Tests/stitching/CvDetailTest.cs
+++ b/test/OpenCvSharp.Tests/stitching/CvDetailTest.cs
@@ -10,7 +10,7 @@ public class CvDetailTest: TestBase
public void ComputeImageFeaturesTest()
{
using var featuresFinder = AKAZE.Create();
- using var image = Image("abbey_road.jpg", ImreadModes.Grayscale);
+ using var image = LoadImage("abbey_road.jpg", ImreadModes.Grayscale);
using var features = CvDetail.ComputeImageFeatures(featuresFinder, image);
Assert.NotNull(features);
@@ -25,8 +25,8 @@ public void ComputeImageFeaturesTest()
public void BestOf2NearestMatcherTest()
{
using var featuresFinder = AKAZE.Create();
- using var image1 = Image("tsukuba_left.png", ImreadModes.Grayscale);
- using var image2 = Image("tsukuba_right.png", ImreadModes.Grayscale);
+ using var image1 = LoadImage("tsukuba_left.png", ImreadModes.Grayscale);
+ using var image2 = LoadImage("tsukuba_right.png", ImreadModes.Grayscale);
using var features1 = CvDetail.ComputeImageFeatures(featuresFinder, image1);
using var features2 = CvDetail.ComputeImageFeatures(featuresFinder, image2);
@@ -43,8 +43,8 @@ public void BestOf2NearestMatcherTest()
public void AffineBestOf2NearestMatcherTest()
{
using var featuresFinder = AKAZE.Create();
- using var image1 = Image("tsukuba_left.png", ImreadModes.Grayscale);
- using var image2 = Image("tsukuba_right.png", ImreadModes.Grayscale);
+ using var image1 = LoadImage("tsukuba_left.png", ImreadModes.Grayscale);
+ using var image2 = LoadImage("tsukuba_right.png", ImreadModes.Grayscale);
using var features1 = CvDetail.ComputeImageFeatures(featuresFinder, image1);
using var features2 = CvDetail.ComputeImageFeatures(featuresFinder, image2);
diff --git a/test/OpenCvSharp.Tests/stitching/StitchingTest.cs b/test/OpenCvSharp.Tests/stitching/StitchingTest.cs
index 75629fcd9..7a0dcc1dd 100644
--- a/test/OpenCvSharp.Tests/stitching/StitchingTest.cs
+++ b/test/OpenCvSharp.Tests/stitching/StitchingTest.cs
@@ -43,7 +43,7 @@ private static Mat[] SelectStitchingImages(int width, int height, int count)
{
var mats = new List();
- using var source = Image(@"lenna.png");
+ using var source = LoadImage(@"lenna.png");
using var result = source.Clone();
var rand = new Random(123); // constant seed for test
for (int i = 0; i < count; i++)
diff --git a/test/OpenCvSharp.Tests/text/OCRTesseractTest.cs b/test/OpenCvSharp.Tests/text/OCRTesseractTest.cs
index ce1a717cc..ab371aaea 100644
--- a/test/OpenCvSharp.Tests/text/OCRTesseractTest.cs
+++ b/test/OpenCvSharp.Tests/text/OCRTesseractTest.cs
@@ -30,7 +30,7 @@ public void Create()
[Fact]
public void Run()
{
- using (var image = Image("alphabet.png"))
+ using (var image = LoadImage("alphabet.png"))
using (var tesseract = OCRTesseract.Create(TessData, "eng"))
{
tesseract.Run(image,
diff --git a/test/OpenCvSharp.Tests/text/TextDetectorTest.cs b/test/OpenCvSharp.Tests/text/TextDetectorTest.cs
index c52296f3e..41fa65ca7 100644
--- a/test/OpenCvSharp.Tests/text/TextDetectorTest.cs
+++ b/test/OpenCvSharp.Tests/text/TextDetectorTest.cs
@@ -45,7 +45,7 @@ public void Create()
public void Detect()
{
using var detector = TextDetectorCNN.Create(ModelArch, ModelWeights);
- using var image = Image("imageTextR.png", ImreadModes.Color);
+ using var image = LoadImage("imageTextR.png", ImreadModes.Color);
detector.Detect(image, out var boxes, out var confidences);
Assert.NotEmpty(boxes);
diff --git a/test/OpenCvSharp.Tests/tracking/TrackerTestBase.cs b/test/OpenCvSharp.Tests/tracking/TrackerTestBase.cs
index c6e05beee..cad9adad0 100644
--- a/test/OpenCvSharp.Tests/tracking/TrackerTestBase.cs
+++ b/test/OpenCvSharp.Tests/tracking/TrackerTestBase.cs
@@ -14,7 +14,7 @@ protected static void InitBase(Tracker tracker)
if (tracker is null)
throw new ArgumentNullException(nameof(tracker));
- using var vc = Image("lenna.png");
+ using var vc = LoadImage("lenna.png");
tracker.Init(vc, new Rect(220, 60, 200, 220));
}
diff --git a/test/OpenCvSharp.Tests/video/BackgroundSubtractorKNNTest.cs b/test/OpenCvSharp.Tests/video/BackgroundSubtractorKNNTest.cs
index 24903f37f..c3b7ea2ad 100644
--- a/test/OpenCvSharp.Tests/video/BackgroundSubtractorKNNTest.cs
+++ b/test/OpenCvSharp.Tests/video/BackgroundSubtractorKNNTest.cs
@@ -24,7 +24,7 @@ public void CheckProperties()
public void Apply()
{
using (var knn = BackgroundSubtractorKNN.Create())
- using (var src = Image("lenna.png"))
+ using (var src = LoadImage("lenna.png"))
using (var dst = new Mat())
{
knn.Apply(src, dst);
diff --git a/test/OpenCvSharp.Tests/video/BackgroundSubtractorMOG2Test.cs b/test/OpenCvSharp.Tests/video/BackgroundSubtractorMOG2Test.cs
index 80b4b0f06..1b7e578f4 100644
--- a/test/OpenCvSharp.Tests/video/BackgroundSubtractorMOG2Test.cs
+++ b/test/OpenCvSharp.Tests/video/BackgroundSubtractorMOG2Test.cs
@@ -29,7 +29,7 @@ public void CheckProperties()
public void Apply()
{
using (var mog = BackgroundSubtractorMOG2.Create())
- using (var src = Image("lenna.png"))
+ using (var src = LoadImage("lenna.png"))
using (var dst = new Mat())
{
mog.Apply(src, dst);
diff --git a/test/OpenCvSharp.Tests/videoio/VideoWriterTest.cs b/test/OpenCvSharp.Tests/videoio/VideoWriterTest.cs
index 522241af1..1775264e7 100644
--- a/test/OpenCvSharp.Tests/videoio/VideoWriterTest.cs
+++ b/test/OpenCvSharp.Tests/videoio/VideoWriterTest.cs
@@ -21,7 +21,7 @@ public void WriteAndCapture()
const string fileName = "dummy1.avi";
try
{
- using var image = Image("lenna.png");
+ using var image = LoadImage("lenna.png");
{
using var writer = new VideoWriter(fileName, VideoCaptureAPIs.OPENCV_MJPEG, FourCC.MJPG, 10, image.Size());
diff --git a/test/OpenCvSharp.Tests/xfeatures2d/LATCHTest.cs b/test/OpenCvSharp.Tests/xfeatures2d/LATCHTest.cs
index c790742fb..1f46fdc39 100644
--- a/test/OpenCvSharp.Tests/xfeatures2d/LATCHTest.cs
+++ b/test/OpenCvSharp.Tests/xfeatures2d/LATCHTest.cs
@@ -16,8 +16,8 @@ public void CreateAndDispose()
[Fact]
public void Compute()
{
- using (var color = Image("lenna.png", ImreadModes.Color))
- using (var gray = Image("lenna.png", ImreadModes.Grayscale))
+ using (var color = LoadImage("lenna.png", ImreadModes.Color))
+ using (var gray = LoadImage("lenna.png", ImreadModes.Grayscale))
using (var descriptors = new Mat())
using (var latch = LATCH.Create())
using (var surf = SURF.Create(500))
diff --git a/test/OpenCvSharp.Tests/xfeatures2d/LUCIDTest.cs b/test/OpenCvSharp.Tests/xfeatures2d/LUCIDTest.cs
index 6b44807f4..e56f73566 100644
--- a/test/OpenCvSharp.Tests/xfeatures2d/LUCIDTest.cs
+++ b/test/OpenCvSharp.Tests/xfeatures2d/LUCIDTest.cs
@@ -16,8 +16,8 @@ public void CreateAndDispose()
[Fact]
public void Compute()
{
- using (var color = Image("lenna.png", ImreadModes.Color))
- using (var gray = Image("lenna.png", ImreadModes.Grayscale))
+ using (var color = LoadImage("lenna.png", ImreadModes.Color))
+ using (var gray = LoadImage("lenna.png", ImreadModes.Grayscale))
using (var descriptors = new Mat())
using (var lucid = LUCID.Create())
using (var surf = SURF.Create(500))
diff --git a/test/OpenCvSharp.Tests/xfeatures2d/SURFTest.cs b/test/OpenCvSharp.Tests/xfeatures2d/SURFTest.cs
index ffe407b42..967a53bd6 100644
--- a/test/OpenCvSharp.Tests/xfeatures2d/SURFTest.cs
+++ b/test/OpenCvSharp.Tests/xfeatures2d/SURFTest.cs
@@ -26,7 +26,7 @@ public void CreateAndDispose()
public void Detect()
{
// This parameter should introduce same result of http://opencv.jp/wordpress/wp-content/uploads/lenna_SURF-150x150.png
- using var gray = Image("lenna.png", 0);
+ using var gray = LoadImage("lenna.png", 0);
using var surf = SURF.Create(500, 4, 2, true);
var keyPoints = surf.Detect(gray);
@@ -36,7 +36,7 @@ public void Detect()
[Fact]
public void DetectAndCompute()
{
- using (var gray = Image("lenna.png", ImreadModes.Grayscale))
+ using (var gray = LoadImage("lenna.png", ImreadModes.Grayscale))
using (var surf = SURF.Create(500))
using (Mat descriptor = new Mat())
{
diff --git a/test/OpenCvSharp.Tests/ximgproc/EdgeFilterTest.cs b/test/OpenCvSharp.Tests/ximgproc/EdgeFilterTest.cs
index c6055f748..09ada410e 100644
--- a/test/OpenCvSharp.Tests/ximgproc/EdgeFilterTest.cs
+++ b/test/OpenCvSharp.Tests/ximgproc/EdgeFilterTest.cs
@@ -10,7 +10,7 @@ public class EdgeFilterTest : TestBase
[Fact]
public void EnhanceByGuidedFilter()
{
- using var image = Image("lenna.png", ImreadModes.Color);
+ using var image = LoadImage("lenna.png", ImreadModes.Color);
image.ConvertTo(image, MatType.CV_32F, 1.0 / 255.0);
using var gf = GuidedFilter.Create(image, 16, 0.01);
diff --git a/test/OpenCvSharp.Tests/ximgproc/FastHoughTransformTest.cs b/test/OpenCvSharp.Tests/ximgproc/FastHoughTransformTest.cs
index 1f3e2b3ad..1dc4a9dfc 100644
--- a/test/OpenCvSharp.Tests/ximgproc/FastHoughTransformTest.cs
+++ b/test/OpenCvSharp.Tests/ximgproc/FastHoughTransformTest.cs
@@ -17,7 +17,7 @@ public class FastHoughTransformTest : TestBase
[Fact]
public void FastHoughTransform()
{
- using (var image = Image("building.jpg", ImreadModes.Grayscale))
+ using (var image = LoadImage("building.jpg", ImreadModes.Grayscale))
using (var fht = new Mat())
{
CvXImgProc.FastHoughTransform(image, fht, MatType.CV_32SC1);
diff --git a/test/OpenCvSharp.Tests/ximgproc/FastLineDetectorTest.cs b/test/OpenCvSharp.Tests/ximgproc/FastLineDetectorTest.cs
index 5b7d95789..19840b22e 100644
--- a/test/OpenCvSharp.Tests/ximgproc/FastLineDetectorTest.cs
+++ b/test/OpenCvSharp.Tests/ximgproc/FastLineDetectorTest.cs
@@ -23,7 +23,7 @@ public void New2()
public void DetectUsingOutputArray()
{
using var fld = FastLineDetector.Create();
- using var image = Image("building.jpg", ImreadModes.Grayscale);
+ using var image = LoadImage("building.jpg", ImreadModes.Grayscale);
using var lines = new Mat();
fld.Detect(image, lines);
Assert.False(lines.Empty());
@@ -35,7 +35,7 @@ public void DetectUsingOutputArray()
public void DetectUsingVector()
{
using var fld = FastLineDetector.Create();
- using var image = Image("building.jpg", ImreadModes.Grayscale);
+ using var image = LoadImage("building.jpg", ImreadModes.Grayscale);
Vec4f[] lines = fld.Detect(image);
Assert.NotNull(lines);
Assert.True(lines.Length > 0);
@@ -45,7 +45,7 @@ public void DetectUsingVector()
public void DrawSegmentsUsingInputArray()
{
using var fld = FastLineDetector.Create();
- using var image = Image("building.jpg", ImreadModes.Grayscale);
+ using var image = LoadImage("building.jpg", ImreadModes.Grayscale);
using var view = image.Clone();
using var lines = new Mat();
fld.Detect(image, lines);
@@ -57,7 +57,7 @@ public void DrawSegmentsUsingInputArray()
public void DrawSegmentsUsingVector()
{
using var fld = FastLineDetector.Create();
- using var image = Image("building.jpg", ImreadModes.Grayscale);
+ using var image = LoadImage("building.jpg", ImreadModes.Grayscale);
using var view = image.Clone();
Vec4f[] lines = fld.Detect(image);
fld.DrawSegments(view, lines, true);
diff --git a/test/OpenCvSharp.Tests/ximgproc/StructuredEdgeDetectionTest.cs b/test/OpenCvSharp.Tests/ximgproc/StructuredEdgeDetectionTest.cs
index f2f33eda4..94988058b 100644
--- a/test/OpenCvSharp.Tests/ximgproc/StructuredEdgeDetectionTest.cs
+++ b/test/OpenCvSharp.Tests/ximgproc/StructuredEdgeDetectionTest.cs
@@ -45,7 +45,7 @@ public void DetectEdges()
Assert.True(File.Exists(Model), $"Failed to download {ModelUrl}");
using (var obj = StructuredEdgeDetection.Create(Model))
- using (var image = Image("blob/shapes1.png", ImreadModes.Color))
+ using (var image = LoadImage("blob/shapes1.png", ImreadModes.Color))
using (var image32F = new Mat())
using (var edges = new Mat())
using (var orientation = new Mat())
@@ -67,7 +67,7 @@ public void GetBoundingBoxes()
Assert.True(File.Exists(Model), $"Failed to download {ModelUrl}");
using (var obj = StructuredEdgeDetection.Create(Model))
- using (var image = Image("blob/shapes1.png", ImreadModes.Color))
+ using (var image = LoadImage("blob/shapes1.png", ImreadModes.Color))
using (var image32F = new Mat())
using (var edges = new Mat())
using (var orientation = new Mat())
diff --git a/test/OpenCvSharp.Tests/ximgproc/SuperpixelTest.cs b/test/OpenCvSharp.Tests/ximgproc/SuperpixelTest.cs
index 0ed167051..282b034e5 100644
--- a/test/OpenCvSharp.Tests/ximgproc/SuperpixelTest.cs
+++ b/test/OpenCvSharp.Tests/ximgproc/SuperpixelTest.cs
@@ -10,7 +10,7 @@ public class SuperpixelTest : TestBase
[Fact]
public void LscNew()
{
- using var image = Image("building.jpg", ImreadModes.Grayscale);
+ using var image = LoadImage("building.jpg", ImreadModes.Grayscale);
using var lsc = SuperpixelLSC.Create(image);
GC.KeepAlive(lsc);
}
@@ -18,7 +18,7 @@ public void LscNew()
[Fact]
public void SlicNew()
{
- using var image = Image("building.jpg", ImreadModes.Grayscale);
+ using var image = LoadImage("building.jpg", ImreadModes.Grayscale);
using var slic = SuperpixelSLIC.Create(image);
GC.KeepAlive(slic);
}
@@ -26,7 +26,7 @@ public void SlicNew()
[Fact]
public void SeedsNew()
{
- using var image = Image("building.jpg", ImreadModes.Grayscale);
+ using var image = LoadImage("building.jpg", ImreadModes.Grayscale);
using var seeds = SuperpixelSEEDS.Create(
image.Width,
image.Height,
@@ -39,7 +39,7 @@ public void SeedsNew()
[Fact]
public void LscSimple()
{
- using var image = Image("building.jpg", ImreadModes.Grayscale);
+ using var image = LoadImage("building.jpg", ImreadModes.Grayscale);
using var lsc = SuperpixelLSC.Create(image);
lsc.Iterate(10);
@@ -66,7 +66,7 @@ public void LscSimple()
[Fact]
public void SlicSimple()
{
- using var image = Image("building.jpg", ImreadModes.Grayscale);
+ using var image = LoadImage("building.jpg", ImreadModes.Grayscale);
using var slic = SuperpixelSLIC.Create(image);
slic.Iterate(10);
@@ -96,7 +96,7 @@ public void SlicSimple()
[PlatformSpecificFact("Windows")]
public void SeedsSimple()
{
- using var image = Image("building.jpg", ImreadModes.Grayscale);
+ using var image = LoadImage("building.jpg", ImreadModes.Grayscale);
using var seeds = SuperpixelSEEDS.Create(
image.Width,
image.Height,
diff --git a/test/OpenCvSharp.Tests/ximgproc/XimgProcTest.cs b/test/OpenCvSharp.Tests/ximgproc/XimgProcTest.cs
index d54a864ac..55369bb8c 100644
--- a/test/OpenCvSharp.Tests/ximgproc/XimgProcTest.cs
+++ b/test/OpenCvSharp.Tests/ximgproc/XimgProcTest.cs
@@ -15,7 +15,7 @@ public class XImgProcTest : TestBase
[InlineData(LocalBinarizationMethods.Nick)]
public void Niblack(LocalBinarizationMethods method)
{
- using var src = Image("mandrill.png", ImreadModes.Grayscale);
+ using var src = LoadImage("mandrill.png", ImreadModes.Grayscale);
using var dst = new Mat();
CvXImgProc.NiblackThreshold(src, dst, 255, ThresholdTypes.Binary, 5, 0.5, method);
ShowImagesWhenDebugMode(dst);
@@ -26,7 +26,7 @@ public void Sauvola()
{
foreach (var r in new double[]{16, 32, 64, 128})
{
- using var src = Image("mandrill.png", ImreadModes.Grayscale);
+ using var src = LoadImage("mandrill.png", ImreadModes.Grayscale);
using var dst = new Mat();
CvXImgProc.NiblackThreshold(
src, dst,
@@ -42,7 +42,7 @@ public void Sauvola()
[Fact]
public void Thinning()
{
- using var src = Image("blob/shapes2.png", ImreadModes.Grayscale);
+ using var src = LoadImage("blob/shapes2.png", ImreadModes.Grayscale);
using var dst = new Mat();
CvXImgProc.Thinning(src, dst, ThinningTypes.ZHANGSUEN);
ShowImagesWhenDebugMode(src, dst);
@@ -51,7 +51,7 @@ public void Thinning()
[Fact]
public void AnisotropicDiffusion()
{
- using var src = Image("blob/shapes2.png", ImreadModes.Color);
+ using var src = LoadImage("blob/shapes2.png", ImreadModes.Color);
using var dst = new Mat();
CvXImgProc.AnisotropicDiffusion(src, dst, 1, 1, 1);
ShowImagesWhenDebugMode(src, dst);
@@ -60,7 +60,7 @@ public void AnisotropicDiffusion()
[Fact]
public void WeightedMedianFilter()
{
- using var src = Image("lenna.png", ImreadModes.Grayscale);
+ using var src = LoadImage("lenna.png", ImreadModes.Grayscale);
using var dst = new Mat();
CvXImgProc.WeightedMedianFilter(src, src, dst, 7);
ShowImagesWhenDebugMode(dst);
@@ -70,7 +70,7 @@ public void WeightedMedianFilter()
public void CovarianceEstimation()
{
const int windowSize = 7;
- using var src = Image("lenna.png", ImreadModes.Grayscale);
+ using var src = LoadImage("lenna.png", ImreadModes.Grayscale);
using var dst = new Mat();
CvXImgProc.CovarianceEstimation(src, dst, windowSize, windowSize);
// TODO
@@ -84,7 +84,7 @@ public void CovarianceEstimation()
[Fact]
public void BrightEdges()
{
- using var src = Image("lenna.png", ImreadModes.Color);
+ using var src = LoadImage("lenna.png", ImreadModes.Color);
using var dst = new Mat();
CvXImgProc.BrightEdges(src, dst);
ShowImagesWhenDebugMode(src, dst);
@@ -95,7 +95,7 @@ public void BrightEdges()
[Fact]
public void ColorMatchTemplate()
{
- using var src = Image("lenna.png", ImreadModes.Color);
+ using var src = LoadImage("lenna.png", ImreadModes.Color);
using var template = src[new Rect(200, 230, 150, 150)];
using var dst = new Mat();
@@ -115,7 +115,7 @@ public void ColorMatchTemplate()
[Fact]
public void GradientDeriche()
{
- using var src = Image("lenna.png", ImreadModes.Color);
+ using var src = LoadImage("lenna.png", ImreadModes.Color);
using var dstX = new Mat();
using var dstY = new Mat();
CvXImgProc.GradientDericheX(src, dstX, 10.0, 10.0);
@@ -128,7 +128,7 @@ public void GradientDeriche()
[Fact]
public void EdgePreservingFilter()
{
- using var src = Image("lenna.png", ImreadModes.Color);
+ using var src = LoadImage("lenna.png", ImreadModes.Color);
using var dst = new Mat();
CvXImgProc.EdgePreservingFilter(src, dst, 7, 10.0);
ShowImagesWhenDebugMode(src, dst);
@@ -139,7 +139,7 @@ public void EdgePreservingFilter()
[Fact]
public void RLThreshold()
{
- using var src = Image("mandrill.png", ImreadModes.Grayscale);
+ using var src = LoadImage("mandrill.png", ImreadModes.Grayscale);
using var dst = new Mat();
CvXImgProc.RL.Threshold(src, dst, 128, ThresholdTypes.Binary);
@@ -161,7 +161,7 @@ public void RLGetStructuringElement()
[Fact]
public void RLDilateErode()
{
- using var src = Image("mandrill.png", ImreadModes.Grayscale);
+ using var src = LoadImage("mandrill.png", ImreadModes.Grayscale);
using var binary = new Mat();
using var dilate = new Mat();
using var erode = new Mat();
@@ -186,7 +186,7 @@ public void RLDilateErode()
[Fact]
public void PeiLinNormalization()
{
- using var src = Image("peilin_plane.png", ImreadModes.Grayscale);
+ using var src = LoadImage("peilin_plane.png", ImreadModes.Grayscale);
using var tMat = src.Clone();
CvXImgProc.PeiLinNormalization(src, tMat);
var tArray = CvXImgProc.PeiLinNormalization(src);
diff --git a/test/OpenCvSharp.Tests/xphoto/TonemapDurandTest.cs b/test/OpenCvSharp.Tests/xphoto/TonemapDurandTest.cs
index 59f1b5d57..6216186d8 100644
--- a/test/OpenCvSharp.Tests/xphoto/TonemapDurandTest.cs
+++ b/test/OpenCvSharp.Tests/xphoto/TonemapDurandTest.cs
@@ -8,7 +8,7 @@ public class TonemapDurandTest : TestBase
[Fact]
public void Process()
{
- using var src = Image("lenna.png");
+ using var src = LoadImage("lenna.png");
using var dst = new Mat();
using var tonemap = TonemapDurand.Create();
@@ -25,8 +25,8 @@ public void Process()
public void Properties()
{
using var tonemap = TonemapDurand.Create(1.2f, 3.0f, 1.5f, 2.2f, 1.3f);
- Assert.Equal(3.0f, tonemap.Contrast, 3);
- Assert.Equal(1.5f, tonemap.Saturation, 3);
+ Assert.Equal(3.0f, tonemap.Contrast, 1e-3);
+ Assert.Equal(1.5f, tonemap.Saturation, 1e-3);
// TODO OpenCV bug https://github.com/opencv/opencv_contrib/pull/2398
//Assert.Equal(2.2f, tonemap.SigmaSpace, 3);
@@ -36,8 +36,8 @@ public void Properties()
tonemap.Saturation = 2.0f;
tonemap.SigmaSpace = 2.5f;
tonemap.SigmaColor = 2.5f;
- Assert.Equal(3.5f, tonemap.Contrast, 3);
- Assert.Equal(2.0f, tonemap.Saturation, 3);
+ Assert.Equal(3.5f, tonemap.Contrast, 1e-3);
+ Assert.Equal(2.0f, tonemap.Saturation, 1e-3);
//Assert.Equal(2.5f, tonemap.SigmaSpace, 3);
//Assert.Equal(2.5f, tonemap.SigmaColor, 3);
}
diff --git a/test/OpenCvSharp.Tests/xphoto/XPhotoTest.cs b/test/OpenCvSharp.Tests/xphoto/XPhotoTest.cs
index 8f56b9cf2..7277a7ce7 100644
--- a/test/OpenCvSharp.Tests/xphoto/XPhotoTest.cs
+++ b/test/OpenCvSharp.Tests/xphoto/XPhotoTest.cs
@@ -19,7 +19,7 @@ public XPhotoTest(ITestOutputHelper testOutputHelper)
[Fact]
public void ApplyChannelGains()
{
- using var src = Image("lenna.png");
+ using var src = LoadImage("lenna.png");
using var b = new Mat(src.Rows, src.Cols, src.Type());
using var g = new Mat(src.Rows, src.Cols, src.Type());
using var r = new Mat(src.Rows, src.Cols, src.Type());
@@ -46,7 +46,7 @@ public void ApplyChannelGains()
public void GrayworldWBBalanceWhite()
{
using var wb = CvXPhoto.CreateGrayworldWB();
- using var src = Image("lenna.png");
+ using var src = LoadImage("lenna.png");
using var dst = new Mat(src.Rows, src.Cols, src.Type());
wb.BalanceWhite(src, dst);
@@ -77,8 +77,8 @@ public void GrayworldWBProperties()
[Fact]
public void Inpaint()
{
- using var src = Image("building.jpg");
- using var mask = Image("building_mask.bmp", ImreadModes.Grayscale);
+ using var src = LoadImage("building.jpg");
+ using var mask = LoadImage("building_mask.bmp", ImreadModes.Grayscale);
using var dst = new Mat(src.Size(), src.Type());
CvXPhoto.Inpaint(src, mask, dst, InpaintTypes.SHIFTMAP);
ShowImagesWhenDebugMode(src);
@@ -89,7 +89,7 @@ public void Inpaint()
public void LearningBasedWBBalanceWhite()
{
using var wb = CvXPhoto.CreateLearningBasedWB(null);
- using var src = Image("lenna.png");
+ using var src = LoadImage("lenna.png");
using var dst = new Mat(src.Rows, src.Cols, src.Type());
wb.BalanceWhite(src, dst);
@@ -108,7 +108,7 @@ public void LearningBasedWBBalanceWhite()
public void LearningBasedWBExtractSimpleFeatures()
{
using var wb = LearningBasedWB.Create(null);
- using var src = Image("lenna.png");
+ using var src = LoadImage("lenna.png");
using var dst = new Mat();
wb.ExtractSimpleFeatures(src, dst);
@@ -135,7 +135,7 @@ public void LearningBasedWBBalanceWhiteWithModel()
// About model file
// http://docs.opencv.org/trunk/dc/dcb/tutorial_xphoto_training_white_balance.html
using var wb = CvXPhoto.CreateLearningBasedWB("");
- using var src = Image("lenna.png");
+ using var src = LoadImage("lenna.png");
using var dst = new Mat(src.Rows, src.Cols, src.Type());
wb.BalanceWhite(src, dst);
@@ -177,7 +177,7 @@ public void LearningBasedWBProperties()
public void SimpleWBBalanceWhite()
{
using var wb = CvXPhoto.CreateSimpleWB();
- using var src = Image("lenna.png");
+ using var src = LoadImage("lenna.png");
using var dst = new Mat(src.Rows, src.Cols, src.Type());
wb.BalanceWhite(src, dst);
@@ -225,7 +225,7 @@ public void SimpleWBProperties()
[Fact]
public void DctDenoising()
{
- using var src = Image("lenna.png");
+ using var src = LoadImage("lenna.png");
using var dst = new Mat();
CvXPhoto.DctDenoising(src, dst, 1);
@@ -238,7 +238,7 @@ public void DctDenoising()
[Fact]
public void Bm3dDenoising()
{
- using var src = Image("lenna.png", ImreadModes.Grayscale);
+ using var src = LoadImage("lenna.png", ImreadModes.Grayscale);
using var dst = new Mat();
CvXPhoto.Bm3dDenoising(src, dst);
@@ -251,7 +251,7 @@ public void Bm3dDenoising()
[Fact]
public void OilPainting()
{
- using var src = Image("lenna.png", ImreadModes.Grayscale);
+ using var src = LoadImage("lenna.png", ImreadModes.Grayscale);
using var dst = new Mat();
CvXPhoto.OilPainting(src, dst, 5, 10);
@@ -273,7 +273,7 @@ public void Sample()
{
RestoreDirectory = true,
Multiselect = true,
- Filter = "Image Files(*.png;*.jpg;*.jpeg;*.bmp)|*.png;*.jpg;*.jpeg;*.bmp"
+ Filter = "LoadImage Files(*.png;*.jpg;*.jpeg;*.bmp)|*.png;*.jpg;*.jpeg;*.bmp"
})
{
if (dialog.ShowDialog() != System.Windows.Forms.DialogResult.OK)
diff --git a/tool/OpenCvSharp.ReleaseMaker/Packer.cs b/tool/OpenCvSharp.ReleaseMaker/Packer.cs
index 4a323446f..4ad8fd2af 100644
--- a/tool/OpenCvSharp.ReleaseMaker/Packer.cs
+++ b/tool/OpenCvSharp.ReleaseMaker/Packer.cs
@@ -36,16 +36,6 @@ public static class Packer
@"OpenCvSharp.Extensions\bin\Release\netstandard2.1\OpenCvSharp.Extensions.dll",
@"OpenCvSharp.Extensions\bin\Release\netstandard2.1\OpenCvSharp.Extensions.pdb",
},
- ["netcoreapp3.1"] = new[]
- {
- @"OpenCvSharp\bin\Release\netcoreapp3.1\OpenCvSharp.dll",
- @"OpenCvSharp\bin\Release\netcoreapp3.1\OpenCvSharp.dll.config",
- @"OpenCvSharp\bin\Release\netcoreapp3.1\OpenCvSharp.pdb",
- @"OpenCvSharp.Extensions\bin\Release\netcoreapp3.1\OpenCvSharp.Extensions.dll",
- @"OpenCvSharp.Extensions\bin\Release\netcoreapp3.1\OpenCvSharp.Extensions.pdb",
- @"OpenCvSharp.WpfExtensions\bin\Release\netcoreapp3.1\OpenCvSharp.WpfExtensions.dll",
- @"OpenCvSharp.WpfExtensions\bin\Release\netcoreapp3.1\OpenCvSharp.WpfExtensions.pdb",
- },
["net6.0"] = new[]
{
@"OpenCvSharp\bin\Release\net6.0\OpenCvSharp.dll",
@@ -135,7 +125,7 @@ private static void MakeBinaryPackage(string dir, string dirDst, string opencvVe
using var zipStream = File.OpenWrite(dstFileName);
using var zipArchive = new ZipArchive(zipStream, ZipArchiveMode.Create, false);
- // net48, netcoreapp3.1といったplatformごとにDLLを選択
+ // net48, net6.0といったplatformごとにDLLを選択
foreach (var (frameworkName, dllFileNames) in dllFiles)
{
foreach (var dllFileName in dllFileNames)