본문 바로가기
반응형

분류 전체보기177

[STM32F429ZI] 8x8 LED (1088BS) 제어 왜 행에 High를 주고 열에 Low 를 줘야되는지 모르겠다면 아래 링크를 보고 오자. https://program-developers-story.tistory.com/21 [STM32F429ZI] GPIO를 통한 LED 제어 GPIO(General Purpose Input Output) 범용 입출력 장치 다양한 용도로 사용하는 입출력 장치가 되겠다. 보드를 정면으로 바라봤을때 좌측라인이 아래 핀맵사진의 내용이다. 핀맵은 앞으로 전자회로 부품 program-developers-story.tistory.com 위 그림의 핀의 숫자는 모듈의 물리적인 핀 번호를 의미함. 행은 실제 매트릭스에 표시되는 행이나 열을 의미함. pin1~8이 그림 상에는 PD0~PD7로 나와있고, pin9~16이 그림 상에는 PC0.. 2024. 1. 18.
[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.
반응형