Skip to content

Commit 3f363a0

Browse files
committed
switch sed into patch file
1 parent 8725a8e commit 3f363a0

File tree

2 files changed

+202
-15
lines changed

2 files changed

+202
-15
lines changed

.github/workflows/build.yml

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@ jobs:
1515
runs-on: ubuntu-latest
1616

1717
steps:
18+
- name: Checkout
19+
uses: actions/checkout@v4
20+
1821
- name: Install Dependencies
1922
run: |
2023
echo "Installing dependencies..."
@@ -80,21 +83,7 @@ jobs:
8083
- name: Apply Patches
8184
run: |
8285
cd opencvsharp
83-
84-
echo "::group::Patching include_opencv.h"
85-
sed -i '42s/.*/ /;44,70s/.*/ /' ./src/OpenCvSharpExtern/include_opencv.h
86-
cat ./src/OpenCvSharpExtern/include_opencv.h
87-
echo "::endgroup::"
88-
89-
echo "::group::Patching std_vector.h"
90-
sed -i '451,585s/.*/ /' ./src/OpenCvSharpExtern/std_vector.h
91-
cat ./src/OpenCvSharpExtern/std_vector.h
92-
echo "::endgroup::"
93-
94-
echo "::group::Patching CMakeLists.txt"
95-
sed -i '12s/.*/file(GLOB OPENCVSHARP_FILES core*.cpp imgp*.cpp imgc*.cpp std*.cpp)/' ./src/OpenCvSharpExtern/CMakeLists.txt
96-
cat ./src/OpenCvSharpExtern/CMakeLists.txt
97-
echo "::endgroup::"
86+
git apply ../eng/opencvsharp.patch
9887
9988
- name: Configure OpenCvSharp
10089
run: |

eng/opencvsharp.patch

Lines changed: 198 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,198 @@
1+
diff --git a/src/OpenCvSharpExtern/CMakeLists.txt b/src/OpenCvSharpExtern/CMakeLists.txt
2+
index 4371d2f6..4863f49f 100644
3+
--- a/src/OpenCvSharpExtern/CMakeLists.txt
4+
+++ b/src/OpenCvSharpExtern/CMakeLists.txt
5+
@@ -9,7 +9,7 @@ IF(APPLE)
6+
link_directories(/usr/local/lib)
7+
ENDIF()
8+
9+
-file(GLOB OPENCVSHARP_FILES *.cpp)
10+
+file(GLOB OPENCVSHARP_FILES core*.cpp imgp*.cpp imgc*.cpp std*.cpp)
11+
12+
find_package(OpenCV REQUIRED)
13+
14+
diff --git a/src/OpenCvSharpExtern/include_opencv.h b/src/OpenCvSharpExtern/include_opencv.h
15+
index d65eb67e..e0f3e560 100644
16+
--- a/src/OpenCvSharpExtern/include_opencv.h
17+
+++ b/src/OpenCvSharpExtern/include_opencv.h
18+
@@ -39,35 +39,7 @@
19+
#include <opencv2/highgui/highgui_winrt.hpp>
20+
#endif
21+
#include <opencv2/core/utils/logger.hpp>
22+
-#include <opencv2/highgui/highgui_c.h>
23+
#include <opencv2/imgproc/imgproc_c.h>
24+
-#include <opencv2/shape.hpp>
25+
-#include <opencv2/stitching.hpp>
26+
-#include <opencv2/video.hpp>
27+
-#ifndef _WINRT_DLL
28+
-#include <opencv2/superres.hpp>
29+
-#include <opencv2/superres/optical_flow.hpp>
30+
-#endif
31+
-
32+
-// opencv_contrib
33+
-#include <opencv2/aruco.hpp>
34+
-#include <opencv2/aruco/charuco.hpp>
35+
-#include <opencv2/bgsegm.hpp>
36+
-#include <opencv2/img_hash.hpp>
37+
-#include <opencv2/line_descriptor.hpp>
38+
-#include <opencv2/optflow.hpp>
39+
-#include <opencv2/quality.hpp>
40+
-#include <opencv2/tracking.hpp>
41+
-#include <opencv2/xfeatures2d.hpp>
42+
-#include <opencv2/ximgproc.hpp>
43+
-#include <opencv2/xphoto.hpp>
44+
-#ifndef _WINRT_DLL
45+
-#include <opencv2/wechat_qrcode.hpp>
46+
-#include <opencv2/dnn.hpp>
47+
-#include <opencv2/dnn_superres.hpp>
48+
-#include <opencv2/face.hpp>
49+
-#include <opencv2/text.hpp>
50+
-#endif
51+
52+
#include <vector>
53+
#include <algorithm>
54+
diff --git a/src/OpenCvSharpExtern/std_vector.h b/src/OpenCvSharpExtern/std_vector.h
55+
index b0699d03..2101b34b 100644
56+
--- a/src/OpenCvSharpExtern/std_vector.h
57+
+++ b/src/OpenCvSharpExtern/std_vector.h
58+
@@ -447,139 +447,3 @@ CVAPI(void) vector_Mat_delete(std::vector<cv::Mat>* vector)
59+
delete vector;
60+
}
61+
#pragma endregion
62+
-
63+
-#pragma region cv::ml::DTrees::Node
64+
-
65+
-CVAPI(std::vector<cv::ml::DTrees::Node>*) vector_DTrees_Node_new1()
66+
-{
67+
- return new std::vector<cv::ml::DTrees::Node>;
68+
-}
69+
-
70+
-CVAPI(size_t) vector_DTrees_Node_getSize(std::vector<cv::ml::DTrees::Node> *vector)
71+
-{
72+
- return vector->size();
73+
-}
74+
-
75+
-CVAPI(cv::ml::DTrees::Node*) vector_DTrees_Node_getPointer(std::vector<cv::ml::DTrees::Node> *vector)
76+
-{
77+
- return &(vector->at(0));
78+
-}
79+
-
80+
-CVAPI(void) vector_DTrees_Node_delete(std::vector<cv::ml::DTrees::Node> *vector)
81+
-{
82+
- delete vector;
83+
-}
84+
-
85+
-#pragma endregion
86+
-
87+
-#pragma region cv::ml::DTrees::Split
88+
-
89+
-CVAPI(std::vector<cv::ml::DTrees::Split>*) vector_DTrees_Split_new1()
90+
-{
91+
- return new std::vector<cv::ml::DTrees::Split>;
92+
-}
93+
-
94+
-CVAPI(size_t) vector_DTrees_Split_getSize(std::vector<cv::ml::DTrees::Split> *vector)
95+
-{
96+
- return vector->size();
97+
-}
98+
-
99+
-CVAPI(cv::ml::DTrees::Split*) vector_DTrees_Split_getPointer(std::vector<cv::ml::DTrees::Split> *vector)
100+
-{
101+
- return &(vector->at(0));
102+
-}
103+
-
104+
-CVAPI(void) vector_DTrees_Split_delete(std::vector<cv::ml::DTrees::Split> *vector)
105+
-{
106+
- delete vector;
107+
-}
108+
-
109+
-#pragma endregion
110+
-
111+
-#pragma region cv::detail::ImageFeatures
112+
-
113+
-CVAPI(std::vector<cv::detail::ImageFeatures>*) vector_ImageFeatures_new1()
114+
-{
115+
- return new std::vector<cv::detail::ImageFeatures>;
116+
-}
117+
-
118+
-CVAPI(size_t) vector_ImageFeatures_getSize(
119+
- std::vector<cv::detail::ImageFeatures>* vector)
120+
-{
121+
- return vector->size();
122+
-}
123+
-
124+
-CVAPI(void) vector_ImageFeatures_getKeypointsSize(
125+
- std::vector<cv::detail::ImageFeatures>* vector, size_t *dst)
126+
-{
127+
- for (size_t i = 0; i < vector->size(); i++)
128+
- {
129+
- dst[i] = vector->at(i).keypoints.size();
130+
- }
131+
-}
132+
-
133+
-CVAPI(void) vector_ImageFeatures_getElements(
134+
- std::vector<cv::detail::ImageFeatures>* vector, detail_ImageFeatures* dstArray)
135+
-{
136+
- for (size_t i = 0; i < vector->size(); i++)
137+
- {
138+
- const auto &src = vector->at(i);
139+
- auto &dst = dstArray[i];
140+
- dst.img_idx = src.img_idx;
141+
- dst.img_size = c(src.img_size);
142+
- //std::memcpy(dst.keypoints, &src.keypoints[0], sizeof(cv::KeyPoint)*src.keypoints.size());
143+
- std::copy(src.keypoints.begin(), src.keypoints.end(), std::back_inserter(*dst.keypoints));
144+
- src.descriptors.copyTo(*dst.descriptors);
145+
- }
146+
-}
147+
-
148+
-CVAPI(void) vector_ImageFeatures_delete(std::vector<cv::detail::ImageFeatures>* vector)
149+
-{
150+
- delete vector;
151+
-}
152+
-
153+
-#pragma endregion
154+
-
155+
-#pragma region cv::line_descriptor::KeyLine
156+
-#if 0
157+
-CVAPI(std::vector<cv::line_descriptor::KeyLine>*) vector_KeyLine_new1()
158+
-{
159+
- return new std::vector<cv::line_descriptor::KeyLine>;
160+
-}
161+
-
162+
-CVAPI(size_t) vector_KeyLine_getSize(std::vector<cv::line_descriptor::KeyLine>* vector)
163+
-{
164+
- return vector->size();
165+
-}
166+
-
167+
-/*
168+
-CVAPI(void) vector_KeyLine_getElements(
169+
- std::vector<cv::line_descriptor::KeyLine>* vector, line_descriptor_KeyLine* dst)
170+
-{
171+
- for (size_t i = 0; i < vector->size(); i++)
172+
- {
173+
- const auto &k = vector->at(i);
174+
- const line_descriptor_KeyLine kl{
175+
- k.angle, k.class_id, k.octave,
176+
- {k.pt.x, k.pt.y},
177+
- k.response, k.size,
178+
- k.startPointX, k.startPointY,
179+
- k.endPointX, k.endPointY,
180+
- k.sPointInOctaveX, k.sPointInOctaveY,
181+
- k.ePointInOctaveX, k.ePointInOctaveY,
182+
- k.lineLength, k.numOfPixels };
183+
- dst[i] = kl;
184+
- }
185+
-}*/
186+
-
187+
-CVAPI(cv::line_descriptor::KeyLine*) vector_KeyLine_getPointer(std::vector<cv::line_descriptor::KeyLine>* vector)
188+
-{
189+
- return &(vector->at(0));
190+
-}
191+
-
192+
-CVAPI(void) vector_KeyLine_delete(std::vector<cv::line_descriptor::KeyLine>* vector)
193+
-{
194+
- delete vector;
195+
-}
196+
-#endif
197+
-#pragma endregion
198+
\ No newline at end of file

0 commit comments

Comments
 (0)