본문 바로가기
반응형

Open CV19

[Ubuntu OpenCV] VM ware ubuntu에서 웹캠 연결 후 OpenCV 사용해서 Qt GUI 구성하기 opencv 먼저 설치하고 $ pwd /home/ubuntu $ mkdir openCV && cd openCV $ wget -O opencv.zip https://github.com/opencv/opencv/archive/4.5.2.zip $ wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.5.2.zip $ unzip opencv.zip $ unzip opencv_contrib.zip $ cd opencv-4.5.2 $ mkdir build && cd build $ pwd /home/ubuntu/openCV/opencv-4.5.2/build $ cmake -D CMAKE_BUILD_TYPE=RELEASE -D CM.. 2024. 3. 8.
[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.
반응형