Comments (8)
Do you think laplacian_filter
is correct? It's definitely not. Because I have variance of laplacian
and laplacian of gaussian
in the production, and current implementation from imageproc master
just not gonna work for me, so I will continue to use my own implementation, which does not lose value.
from imageproc.
I read your points, reviewed the literature I consulted a year ago (Digital Image Processing, Global Edition - Rafael C. Gonzalez and Richard E. Woods) and I say that it is correct as it is. The default value of OpenCV is the adjacency transform, if you read my previous constructor, the use of [0, 1, 0, 1, -4, 1, 0, 1, 0] was present as an optional situation (The result is "dirtier"), if OpenCV uses it as default, it was a decision of the developers, in the literature this is a secondary formula. As for what you mentioned about the real Laplacian being able to have negative values, I didn't understand your point very well, in a GrayImage the resulting value will never be greater than 255 or negative.
from imageproc.
In GrayImage
they will not be negative or larger than 255, since in this format the pixels are stored as u8. But it doesn't mean that values are correct.
from imageproc.
If the input values are in [0, 255]
, then after Laplacian
(with [0, 1, 0, 1, -4, 1, 0, 1, 0]
kernel) they can be in [-1020, 1020]
.
from imageproc.
See horizontal_sobel
, for example. The input is GrayImage
, but the output is Image<Luma<i16>>
to make sure we don't lose the value.
from imageproc.
See
horizontal_sobel
, for example. The input isGrayImage
, but the output isImage<Luma<i16>>
to make sure we don't lose the value.
I understand your point, but for what the algorithm proposes and does is correct, no information will be lost
from imageproc.
https://docs.opencv.org/4.9.0/d5/db5/tutorial_laplace_operator.html
![laplace](https://private-user-images.githubusercontent.com/96136086/326631268-113f5d4d-dc3b-4abb-ab91-4f04d80109c1.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjE5NTM2OTksIm5iZiI6MTcyMTk1MzM5OSwicGF0aCI6Ii85NjEzNjA4Ni8zMjY2MzEyNjgtMTEzZjVkNGQtZGMzYi00YWJiLWFiOTEtNGYwNGQ4MDEwOWMxLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MjYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzI2VDAwMjMxOVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTkwMmY5YmM1MTY4Zjg2YzE5NTZkZGU4NTAzNWU2YTY5NzAwNzQ1OWFhZTYwMDI1NDMzZjI0Mjk3NzlmNWJkYjcmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.e4fQQwUACvAPYZnL9rNl7a7XsHz1234itUSN4RPjTTE)
from imageproc.
https://docs.opencv.org/4.9.0/d5/db5/tutorial_laplace_operator.html
I understand, I removed my suggestion about this, the only point that really bothered me was the removal of the function
from imageproc.
Related Issues (20)
- Try using doc_auto_cfg to automate addition of docrs attributes
- Rename `imageproc::map::map_colors()` to `map_pixels()` HOT 2
- Another doc-macro for parallel variations of functions?
- `Rect` refactors HOT 2
- Add filter benchmarks for kernels larger than 3x3
- Add hardcoded filter3x3 function to benchmark current generic filter function against HOT 19
- Switch `imageproc::Rect` to `image::Rect` HOT 3
- `Laplacian` from `master` is wrong HOT 4
- Check for any functions missing tests
- Use `Kernel` by `ref` HOT 2
- Document release process
- Agree a sensible API for filtering so we can reduce the risk of frequent breaking changes to signatures HOT 3
- Fix filter performance vs simple hardcoded implementation
- Add Tags for all previous releases where possible HOT 2
- Decide module layout for new imageops functions HOT 1
- how encode drawed image to [u8] ? HOT 6
- Rounded corners on rectangles and images HOT 4
- Projection matrix for rotation is weird
- Add `#[must_use]` to all non-mut image processing functions
- Broken links in docs.rs documentation
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from imageproc.