함수를 구현하는 방법에는 여러 가지 방법이 있을 수 있다. 그 방법에 따라서 알고리즘의 성능이 달라질 수 있는데, 특별한 상황에서는 정확도가 떨어지더라도 더 빨리 계산을 해야 하는 상황이 있을 수 있다. (예로 자율주행차량에 사용되는 센서의 경우 빠른 처리가 뒷받침이 되어야겠지만, 스마트폰에서 사용하는 사진 보정 app의 경우 처리 속도는 약간 느리더라도 사용자가 마음에 드는 결과를 출력하는 것이 더 중요할 수 있다.) 비슷하게 내가 구현한 프로그램의 성능을 테스트해야 하는 상황이 있는데, 이번에는 openCV 제공하는 방식을 통해 프로그램의 실행 속도를 측정해본다. 이전 글을 통해서 color reduction 함수 예제를 기존 방식과 좀 더 효율적인 bitwise operation을 통한 방식으로 구..
이전 포스트에서는 Mat class의 data를 pointer를 사용하여 scanning하는 것을 다루었다. 이번에는 iterator를 사용하여 진행해보도록 한다. 예제는 이전과 같이 color reduction을 진행하고, scanning 방식만 변경하도록 한다. 코드와 결과를 먼저 보면 다음과 같다. #include #include #include using namespace std; using namespace cv; void colorReduction(Mat image, int div = 64) { // div must be a power of 2 int n = static_cast( log(static_cast(div)) / log(2.0) + 0.5); // mask used to round ..
openCV에서 포인터로 픽셀에 접근하는 법을 배워본다. 포인터로 접근하는 것은 영상의 사이즈가 커지거나, 빠른 처리 속도를 요구하는 환경에서 도움이 될 수 있을 것이다. 예제는 포인터를 이용하여 픽셀에 접근한 후, 영상의 color reduction을 진행한다. color reduction 알고리즘 및 영상의 데이터를 효율적으로 접근하는 방법들을 중점으로 알아본다. 우선 8bit(256) 기준으로, R.G.B 3 색 영역에서 나올 수 있는 색의 수는 256 * 256 * 256으로 16,777,216 가지이다. 분석의 복잡도를 줄이기 위하여 때때로 이 색 영역을 줄여야 하는 상황이 있을 수 있다. 가장 쉬운 방법으로는 RGB space를 동일한 사이즈로 줄이는 것이다. 예로 8로 각 dimension을..
- Total
- Today
- Yesterday
- hough transform
- canny operator
- morphological operation
- median filter
- Line Detection
- bilateral filter
- Sobel
- adaptive thresholding
- equalizing
- mean filter
- upsampling
- black top hat
- dilation
- morphology
- Low pass filter
- 캐니 엣지
- top hat
- direction detection
- OpenCV
- pyrUp
- difference of gaussian
- erosion
- gradient
- high pass filter
- segmentation
- canny
- pyrDown
- 영상처리
- laplacian of gaussian
- Filter
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |