PyPatchMatch 2.0.0rc1__tar.gz → 2.0.0rc2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (22) hide show
  1. {pypatchmatch-2.0.0rc1 → pypatchmatch-2.0.0rc2}/PKG-INFO +1 -1
  2. {pypatchmatch-2.0.0rc1 → pypatchmatch-2.0.0rc2}/patchmatch/_version.py +3 -3
  3. {pypatchmatch-2.0.0rc1 → pypatchmatch-2.0.0rc2}/patchmatch/csrc/inpaint.cpp +12 -6
  4. {pypatchmatch-2.0.0rc1 → pypatchmatch-2.0.0rc2}/CMakeLists.txt +0 -0
  5. {pypatchmatch-2.0.0rc1 → pypatchmatch-2.0.0rc2}/LICENSE +0 -0
  6. {pypatchmatch-2.0.0rc1 → pypatchmatch-2.0.0rc2}/README.md +0 -0
  7. {pypatchmatch-2.0.0rc1 → pypatchmatch-2.0.0rc2}/examples/images/forest_pruned.bmp +0 -0
  8. {pypatchmatch-2.0.0rc1 → pypatchmatch-2.0.0rc2}/patchmatch/__init__.py +0 -0
  9. {pypatchmatch-2.0.0rc1 → pypatchmatch-2.0.0rc2}/patchmatch/_lib.py +0 -0
  10. {pypatchmatch-2.0.0rc1 → pypatchmatch-2.0.0rc2}/patchmatch/csrc/inpaint.h +0 -0
  11. {pypatchmatch-2.0.0rc1 → pypatchmatch-2.0.0rc2}/patchmatch/csrc/masked_image.cpp +0 -0
  12. {pypatchmatch-2.0.0rc1 → pypatchmatch-2.0.0rc2}/patchmatch/csrc/masked_image.h +0 -0
  13. {pypatchmatch-2.0.0rc1 → pypatchmatch-2.0.0rc2}/patchmatch/csrc/nnf.cpp +0 -0
  14. {pypatchmatch-2.0.0rc1 → pypatchmatch-2.0.0rc2}/patchmatch/csrc/nnf.h +0 -0
  15. {pypatchmatch-2.0.0rc1 → pypatchmatch-2.0.0rc2}/patchmatch/csrc/pyinterface.cpp +0 -0
  16. {pypatchmatch-2.0.0rc1 → pypatchmatch-2.0.0rc2}/patchmatch/csrc/pyinterface.h +0 -0
  17. {pypatchmatch-2.0.0rc1 → pypatchmatch-2.0.0rc2}/patchmatch/patch_match.py +0 -0
  18. {pypatchmatch-2.0.0rc1 → pypatchmatch-2.0.0rc2}/patchmatch/py.typed +0 -0
  19. {pypatchmatch-2.0.0rc1 → pypatchmatch-2.0.0rc2}/pyproject.toml +0 -0
  20. {pypatchmatch-2.0.0rc1 → pypatchmatch-2.0.0rc2}/scripts/build_opencv.py +0 -0
  21. {pypatchmatch-2.0.0rc1 → pypatchmatch-2.0.0rc2}/tests/test_e2e.py +0 -0
  22. {pypatchmatch-2.0.0rc1 → pypatchmatch-2.0.0rc2}/tests/test_patch_match.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: PyPatchMatch
3
- Version: 2.0.0rc1
3
+ Version: 2.0.0rc2
4
4
  Summary: This library implements the PatchMatch based inpainting algorithm.
5
5
  Keywords: inpainting,patchmatch,image-processing,opencv
6
6
  Author-Email: The InvokeAI Project <lincoln.stein@gmail.com>, Jiayuan Mao <maojiayuan@gmail.com>, Kyle Schouviller <kyle0654@hotmail.com>, Matthias Wild <mauwii@outlook.de>, Younesse ANDAM <younesse.andam@gmail.com>
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
18
18
  commit_id: str | None
19
19
  __commit_id__: str | None
20
20
 
21
- __version__ = version = '2.0.0rc1'
22
- __version_tuple__ = version_tuple = (2, 0, 0, 'rc1')
21
+ __version__ = version = '2.0.0rc2'
22
+ __version_tuple__ = version_tuple = (2, 0, 0, 'rc2')
23
23
 
24
- __commit_id__ = commit_id = 'g75098309c'
24
+ __commit_id__ = commit_id = 'geb61e5d37'
@@ -128,13 +128,19 @@ cv::Mat Inpainting::run(bool verbose, bool verbose_visualize, unsigned int rando
128
128
  // Only the holes are filled. The votes of overlapping patches also change the known
129
129
  // pixels near the holes, and the pyramid leaves globally masked pixels black, which
130
130
  // are neither filled nor used as a source. Keep the input values of both.
131
+ // A plain loop instead of OpenCV matrix expressions: those pull OpenCV's whole
132
+ // expression module into the statically linked library, 40 % more on disk.
131
133
  cv::Mat result = target.image();
132
- if (result.empty()) // OpenCV rejects empty operands in matrix expressions
133
- return result;
134
- cv::Mat keep = m_initial.mask() == 0;
135
- if (!m_initial.global_mask().empty())
136
- keep |= m_initial.global_mask() != 0;
137
- m_initial.image().copyTo(result, keep);
134
+ for (int y = 0; y < result.rows; ++y)
135
+ {
136
+ for (int x = 0; x < result.cols; ++x)
137
+ {
138
+ if (m_initial.is_masked(y, x) && !m_initial.is_globally_masked(y, x))
139
+ continue;
140
+ const unsigned char *input = m_initial.get_image(y, x);
141
+ std::copy(input, input + 3, result.ptr<unsigned char>(y, x));
142
+ }
143
+ }
138
144
  return result;
139
145
  }
140
146
 
File without changes