[OpenCV] C#์์ OpenCVSharp4 ํ๊ฒฝ ๊ตฌ์ฑ ๋ฐ ์ฌ์ฉ ๋ฐฉ๋ฒ (์์ ํฌํจ)
OpenCVSharp์ด๋?
OpenCV
๋ Computer Vision ๋ผ์ด๋ธ๋ฌ๋ฆฌ
๋ฅผ ๋ฌด๋ฃ๋ก ์ฌ์ฉํ ์ ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์
๋๋ค. ์ด OpenCV๋ C/C++ ์ธ์ด
๋ก ๊ฐ๋ฐ๋์ด C++ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๊ธฐ๋ณธ์ผ๋ก ์ ๊ณตํ์ง๋ง, C#์ ์ ๊ณตํ์ง ์๋๊ตฐ์. ๊ทธ๋์ ์ฐพ์๋ณด๋ C#์์๋ OpenCV๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์๋ C# Wrapping Library
๋ฅผ ์ฌ์ฉํ๋ค๊ณ ํฉ๋๋ค. ๊ทธ์ค ์ธ์ง๋๊ฐ ๋์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ Emgu CV
์ OpenCVSharp
์ด ๋๊ฒ ์ต๋๋ค.
Emgu CV์ OpenCVSharp์ ๊ฐ์ฅ ํฐ ์ฐจ์ด์ ์ผ๋ก, OpenCVSharp์ ๊ตฌ๋ฌธ์ด OpenCV C++ ํจ์ ๋ฐ ๋ฉ์๋์ ๋ ๊ฐ๊น๋ค๋ ์ ์ด ์๋๊ตฐ์. ์ด๋ค ๊ฒ์ ์ ํํ๋ ์๊ด์ ์์ง๋ง, ๊ฐ์ธ์ ์ผ๋ก C++ ์ฌ์ฉ ๋ฐฉ๋ฒ๊ณผ ๋น์ทํ OpenCVSharp์ด ๋ ๋ซ๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ฐธ๊ณ ๋งํฌ: https://stackoverflow.com/questions/37567494/what-is-the-difference-between-opencv-net-opencvsharp-and-emgucv
What is the difference between OpenCV.NET, OpenCVSharp and EmguCV?
What is the difference between OpenCV.NET, OpenCVSharp and EmguCV? They are derived from OpenCV. So, what is the difference in their design, implementation and application philosophies?
stackoverflow.com
๋ณธ๋ฌธ์ ์์ ์ฝ๋๋ ํ๋จ์ ์ฒจ๋ถ๋์ด ์์ต๋๋ค.
OpenCVSharp ํ๊ฒฝ ๊ตฌ์ฑํ๊ธฐ
๊ทธ๋ผ ๋ณธ๊ฒฉ์ ์ผ๋ก OpenCVSharp์ C# ํ๋ก์ ํธ์ ๊ตฌ์ฑํด ๋ณด๊ฒ ์ต๋๋ค. C# Windows Forms ์ฑ
์ ์ ํํ๊ณ ํ๋ก์ ํธ ์ด๋ฆ์ ExamOpenCVSharp
์ผ๋ก ์์ฑํ๊ฒ ์ต๋๋ค.
Visual Studio ์๋จ์ ๋๊ตฌ ๋ฉ๋ด์์ NuGet ํจํค์ง ๊ด๋ฆฌ์์ ์๋ฃจ์ ์ฉ NuGet ํจํค์ง ๊ด๋ฆฌ ๋ฉ๋ด๋ฅผ ํด๋ฆญํฉ๋๋ค.
์๋ ๊ทธ๋ฆผ์ฒ๋ผ, NuGet-์๋ฃจ์
์ฐฝ์์ ์ฐพ์๋ณด๊ธฐ ํญ์ ํด๋ฆญํ๊ณ OpenCVSharp
์ ๊ฒ์ํฉ๋๋ค.
OpenCvSharp4 v4.5.2๋ฅผ ์ ํํ๊ณ , ์๋์ ๊ฐ์ด ํ๋ก์ ํธ๋ฅผ ์ฒดํฌํ ํ ์ค์น ๋ฒํผ์ ํด๋ฆญํฉ๋๋ค.
ํน๋ณํ ๋ฌธ์ ๊ฐ ์๋ค๋ฉด ์๋์ ๊ฐ์ด ์๋ฃ ํ๋ฉด์ด ํ์๋ฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ํ๋ก์ ํธ์ ์ฐธ์กฐ ๋ถ๋ถ์ ์ฌ๋ฌ dll
์ด ์ถ๊ฐ๋ ๊ฒ๋ ํ์ธํ ์ ์์ต๋๋ค.
์ฌ๊ธฐ๊น์ง๋ง ์ค์ ํ๊ณ OpenCV ์ฝ๋๋ฅผ ์ฌ์ฉํ๋ฉด ์์ธ์์ "'OpenCvSharp.Internal.NativeMethods'์ ํ์ ์ด๋์ ๋ผ์ด์ ์์ ์์ธ๋ฅผ Throwํ์ต๋๋ค."๋ผ๋ ๋ฉ์์ง๊ฐ ์ฒ๋ฆฌ๋ฉ๋๋ค. ์๋์ ์ถ๊ฐ ์ ์ฐจ๋ฅผ ์งํํด ์ฃผ์ธ์.
์๋์ OpenCVSharp GitHub ํ์ด์ง์ ์ ์ํฉ๋๋ค.
https://github.com/shimat/opencvsharp
shimat/opencvsharp
OpenCV wrapper for .NET. Contribute to shimat/opencvsharp development by creating an account on GitHub.
github.com
๊ทธ๋ฆฌ๊ณ ์ฐ์ธก ์ค์์ Releases๋ฅผ ํด๋ฆญํฉ๋๋ค.
NuGet์์ ์ค์นํ ๋ฒ์ ๊ณผ ๋์ผํ ๋ฒ์ ์ธ 4.5.2.20210404 ํ๊ทธ
์์ OpenCvSharp-4.5.2-2021-0405.zip
ํ์ผ์ ํด๋ฆญํ์ฌ ๋ค์ด๋ก๋ํฉ๋๋ค.
๋ค์ด๋ก๋ํ ํ์ผ์ ์์ถ์ ํด์ ํ๋ฉด ์๋์ ๊ฐ์ ํ์ผ๋ค์ด ์์ต๋๋ค.
์ฌ๊ธฐ์ NativeLib ํด๋ > win ํด๋ > x86 ๋๋ x64์ OpenCvSharpExtern.dll
ํ์ผ์ ๋ณต์ฌํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ExamOpenCVSharp ํ๋ก์ ํธ ํด๋์ ๋ถ์ฌ ๋ฃ์ต๋๋ค.
์ด์ ๋ค์ Visual Studio๋ก ๋์์์, ExamOpenCVSharp ํ๋ก์ ํธ ์ ํ ํ ๊ธฐ์กด ํญ๋ชฉ ์ถ๊ฐ ๋ฉ๋ด๋ฅผ ํด๋ฆญํฉ๋๋ค.
ํ์ผ ์ ํ ํ๋ฉด ์ฐฝ์ด ํ์๋๋ฉด ์ฐ์ธก ํ๋จ์ ํํฐ๋ฅผ ๋ชจ๋ ํ์ผ๋ก ์ ํํ๊ณ , OpenCvSharpExtern.dll ํ์ผ์ ์ถ๊ฐํฉ๋๋ค.
ํ์ผ ์ถ๊ฐ ํ dll์ ์ ํํ๊ณ , ์ถ๋ ฅ ๋๋ ํฐ๋ฆฌ์ ๋ณต์ฌ ์ต์ ์ ํญ์ ๋ณต์ฌ๋ก ์ค์ ํฉ๋๋ค.
C# OpenCVSharp์ผ๋ก Picture Box์ ์ด๋ฏธ์ง ๋ถ๋ฌ์ค๊ธฐ
์ด์ ํ๊ฒฝ ๊ตฌ์ฑ์ ๋ชจ๋ ๋ง์ณค์ต๋๋ค. ๋ณธ๊ฒฉ์ ์ผ๋ก ์ฝ๋ ์ฌ์ฉ ๋ฐฉ๋ฒ์ ์ดํด๋ณด๊ฒ ์ต๋๋ค. ํผ์ UI๋ ์๋์ ๊ฐ์ด ๋ฒํผ๊ณผ PictureBox๋ง ์ถ๊ฐํฉ๋๋ค.
์ฝ๋๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
using OpenCvSharp;
private void buttonLoad_Click(object sender, EventArgs e)
{
try
{
OpenFileDialog dlg = new OpenFileDialog();
if (dlg.ShowDialog() == DialogResult.OK)
{
Mat image = Cv2.ImRead(dlg.FileName);
pictureBoxImage.Image = OpenCvSharp.Extensions.BitmapConverter.ToBitmap(image);
}
}
catch(Exception exc)
{
MessageBox.Show(exc.Message);
}
}
์์ฃผ ๊ฐ๋จํ์ฃ ? ์ค๋ช
ํ ๋ด์ฉ๋ ๋ฑํ ์์ต๋๋ค. ๋ณธ๋ฌธ์์ ์์ฃผ ์ค์ํ ๋ถ๋ถ์ ํ๋ก์ ํธ์ OpenCvSharpExtern.dll
์ ๋ฐ๋ก ์ถ๊ฐํ ๊ฒ์
๋๋ค. ์ด dll์ด ์์ผ๋ฉด ๊ณ์ํด์ ์์ธ ๋ฉ์์ง๊ฐ ๋ฐ์ํ๋ ๊ผญ ์๊ณ ์ฌ์ฉํ์๊ธฐ ๋ฐ๋๋๋ค.
์๋ ์์ ์ฝ๋๋ ์ฉ๋ ๋ฌธ์ ๋ก NuGet Package์ OpenCvSharpExtern.dll์ ์ ์ธํ๊ณ ์ฒจ๋ถํ์ต๋๋ค.
'Programming > OpenCV' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[OpenCV] VTK 9.0.0๊ณผ OpenCV 4.4.0์ผ๋ก viz ๋ชจ๋ ํฌํจํ์ฌ ๋น๋ํ๊ธฐ! (9) | 2023.04.15 |
---|---|
[OpenCV] ์นด๋ฉ๋ผ์ ๋ฒํผ ์ฐ๊ฒฐํ๊ธฐ (0) | 2019.04.21 |
[OpenCV] Mat ์ด๋ฏธ์ง๋ฅผ Picture Control์ ์ถ๋ ฅํ๊ธฐ (7) | 2019.04.16 |
[OpenCV] IplImage vs Mat ๋ฌด์์ ์ฌ์ฉํด์ผ ํ ๊น? (0) | 2019.03.04 |
[OpenCV] Visual Studio 2015์์ OpenCV 4.0.1 ์ฌ์ฉํ๊ธฐ (6) | 2019.03.03 |
๋๊ธ
์ด ๊ธ ๊ณต์ ํ๊ธฐ
-
๊ตฌ๋
ํ๊ธฐ
๊ตฌ๋ ํ๊ธฐ
-
์นด์นด์คํก
์นด์นด์คํก
-
๋ผ์ธ
๋ผ์ธ
-
ํธ์ํฐ
ํธ์ํฐ
-
Facebook
Facebook
-
์นด์นด์ค์คํ ๋ฆฌ
์นด์นด์ค์คํ ๋ฆฌ
-
๋ฐด๋
๋ฐด๋
-
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
-
Pocket
Pocket
-
Evernote
Evernote
๋ค๋ฅธ ๊ธ
-
[OpenCV] VTK 9.0.0๊ณผ OpenCV 4.4.0์ผ๋ก viz ๋ชจ๋ ํฌํจํ์ฌ ๋น๋ํ๊ธฐ!
[OpenCV] VTK 9.0.0๊ณผ OpenCV 4.4.0์ผ๋ก viz ๋ชจ๋ ํฌํจํ์ฌ ๋น๋ํ๊ธฐ!
2023.04.15 -
[OpenCV] ์นด๋ฉ๋ผ์ ๋ฒํผ ์ฐ๊ฒฐํ๊ธฐ
[OpenCV] ์นด๋ฉ๋ผ์ ๋ฒํผ ์ฐ๊ฒฐํ๊ธฐ
2019.04.21 -
[OpenCV] Mat ์ด๋ฏธ์ง๋ฅผ Picture Control์ ์ถ๋ ฅํ๊ธฐ
[OpenCV] Mat ์ด๋ฏธ์ง๋ฅผ Picture Control์ ์ถ๋ ฅํ๊ธฐ
2019.04.16 -
[OpenCV] IplImage vs Mat ๋ฌด์์ ์ฌ์ฉํด์ผ ํ ๊น?
[OpenCV] IplImage vs Mat ๋ฌด์์ ์ฌ์ฉํด์ผ ํ ๊น?
2019.03.04