본문 바로가기
반응형

분류 전체보기176

[OPENCV-C++ ] open cv morphology_extension을 활용한 이미지 노이즈 제거 [OPENCV-C++ ] BGR→HSV→fndcontours→text로 사진에 데이터 표현 내 코드 //내 코드 //stop image 실습을 위한 파일 #pragma once #include "ISP.h" int main() { std::string fileName = "../KCCImageNet/stop_img.png"; cv::Mat src_color = cv::imread(fileName, cv::ImreadModes::IMREAD_ANYCOLOR); cv::Mat src_color_HSV1 program-developers-story.tistory.com 윗 글에서 HSV변환 후 threshold를 줘서 따낸 2개를 합친 src_hsv_bin를 보면 노이즈가 상당히 많다. [OPENCV-C++ .. 2023. 11. 26.
[OPENCV-C++ ] open cv 라이브러리 활용 erode, dilate 앞선 코드들은 라이브러리 활용을 최소화하고 직접 영상을 처리하는 로직을 구현했다면 이번에는 open cv에서 제공하는 라이브러리 함수를 활용하여 erode와 dilate를 구현해보겠다. //opencv 라이브러리 { std::string fileName = "../KCCImageNet/images/circle_plate.png"; cv::Mat src_gray = cv::imread(fileName, cv::ImreadModes::IMREAD_GRAYSCALE); cv::Mat src_bin; cv::threshold(src_gray, src_bin, 150, 255, ThresholdTypes::THRESH_BINARY); int kernelSz = 1; int shape = MorphShapes::M.. 2023. 11. 26.
[OPENCV-C++ ] 형태학 기반 영상처리 Dilation 팽창 [OPENCV-C++ ] 형태학 기반 영상처리 Erosion 침식 #pragma once #include "ISP.h" int main() { //const int data_w = 5; //const int data_h = 5; //uchar Datas[data_w * data_h] = { //255,255,255,255,255, //255,255,255,255,255, //255,255,255,255,255, //255,255,255,255,255, //255,255,255,255,255 //}; const int d program-developers-story.tistory.com 앞서, 침식한 이미지를 그대로 다시 팽창 시키는 코드 #pragma once #include "ISP.h" int mai.. 2023. 11. 26.
[OPENCV-C++ ] 형태학 기반 영상처리 Erosion 침식 #pragma once #include "ISP.h" int main() { //const int data_w = 5; //const int data_h = 5; //uchar Datas[data_w * data_h] = { //255,255,255,255,255, //255,255,255,255,255, //255,255,255,255,255, //255,255,255,255,255, //255,255,255,255,255 //}; const int data_w = 7; const int data_h = 7; uchar Datas[data_w * data_h] = { 000,000,000,000,000,000,000, 000,255,255,255,000,000,000, 000,255,255,255,25.. 2023. 11. 26.
[OPENCV-C++ ] BGR→HSV→fndcontours→text로 사진에 데이터 표현 내 코드 //내 코드 //stop image 실습을 위한 파일 #pragma once #include "ISP.h" int main() { std::string fileName = "../KCCImageNet/stop_img.png"; cv::Mat src_color = cv::imread(fileName, cv::ImreadModes::IMREAD_ANYCOLOR); cv::Mat src_color_HSV1; cvtColor(src_color, src_color_HSV1, COLOR_BGR2HSV);//BGR인 output, 즉 원본을 HSV로 변환한게 img_hsv cv::Mat src_color_HSV; cvtColor(src_color, src_color_HSV, COLOR_BGR2HSV);//B.. 2023. 11. 26.
[OPENCV-C++ ] findcontours(외곽 테두리 따주는 친구-segmentation 이어서) #pragma once #include "ISP.h" int main() { std::string fileName = "../KCCImageNet/shapes.jpg"; cv::Mat src_gray = cv::imread(fileName, cv::ImreadModes::IMREAD_GRAYSCALE); uchar* pData = src_gray.data; size_t width = src_gray.cols; size_t height = src_gray.rows; cv::Mat src_bin = Mat::zeros(cv::Size(width, height), CV_8UC1);//src_binary 메모리 생성하고 0으로 채우기 cv::Mat src_obj = Mat::zeros(cv::Size(width.. 2023. 11. 26.
[OPENCV-C++ ] segmentation #pragma once #include "ISP.h" int main() { std::string fileName = "../KCCImageNet/shapes.jpg"; cv::Mat src_gray = cv::imread(fileName, cv::ImreadModes::IMREAD_GRAYSCALE); uchar* pData = src_gray.data; size_t width = src_gray.cols; size_t height = src_gray.rows; cv::Mat src_bin = Mat::zeros(cv::Size(width, height), CV_8UC1);//src_binary 메모리 생성하고 0으로 채우기 cv::Mat src_obj = Mat::zeros(cv::Size(width.. 2023. 11. 26.
[OPENCV-C++ ] sigma를 활용한 gaussian filter #pragma once #include "ISP.h" int main() { std::string fileName = "../thirdparty/opencv_480/sources/samples/data/lena.jpg"; cv::Mat src_gray = cv::imread(fileName, cv::ImreadModes::IMREAD_GRAYSCALE); cv::Mat src_gray_gaussian = src_gray.clone(); src_gray_gaussian = 0; const float PI = 3.14159265; float sigma = 0.4; float gaussian[25] = {0,};//mask의 영역 별 곱해줄 값들 int filter_sz = 5; int half_kernelS.. 2023. 11. 26.
반응형