#python
import cv2
def erode_dilate():
src = cv2.imread("D:\\projects\\SampleCode\\006939-master\\ch11\\morphology\\milkdrop.bmp", cv2.IMREAD_GRAYSCALE)
if src is None:
print("Image load failed!")
return
_, bin = cv2.threshold(src, 0, 255, cv2.THRESH_BINARY | cv2.THRESH_OTSU)
dst1 = cv2.erode(bin, None)
dst2 = cv2.dilate(bin, None)
cv2.imshow("src", src)
cv2.imshow("bin", bin)
cv2.imshow("erode", dst1)
cv2.imshow("dilate", dst2)
cv2.waitKey(0)
cv2.destroyAllWindows()
def open_close():
src = cv2.imread("D:\\projects\\SampleCode\\006939-master\\ch11\\morphology\\milkdrop.bmp", cv2.IMREAD_GRAYSCALE)
if src is None:
print("Image load failed!")
return
_, bin = cv2.threshold(src, 0, 255, cv2.THRESH_BINARY | cv2.THRESH_OTSU)
dst1 = cv2.morphologyEx(bin, cv2.MORPH_OPEN, None)
dst2 = cv2.morphologyEx(bin, cv2.MORPH_CLOSE, None)
cv2.imshow("src", src)
cv2.imshow("bin", bin)
cv2.imshow("opening", dst1)
cv2.imshow("closing", dst2)
cv2.waitKey(0)
cv2.destroyAllWindows()
erode_dilate()
open_close()
// C++
#include "opencv2/opencv.hpp"
#include <iostream>
using namespace cv;
using namespace std;
void erode_dilate();
void open_close();
int main(void)
{
erode_dilate();
open_close();
return 0;
}
void erode_dilate()
{
Mat src = imread("milkdrop.bmp", IMREAD_GRAYSCALE);
if (src.empty()) {
cerr << "Image load failed!" << endl;
return;
}
Mat bin;
threshold(src, bin, 0, 255, THRESH_BINARY | THRESH_OTSU);
Mat dst1, dst2;
erode(bin, dst1, Mat());
dilate(bin, dst2, Mat());
imshow("src", src);
imshow("bin", bin);
imshow("erode", dst1);
imshow("dilate", dst2);
waitKey();
destroyAllWindows();
}
void open_close()
{
Mat src = imread("milkdrop.bmp", IMREAD_GRAYSCALE);
if (src.empty()) {
cerr << "Image load failed!" << endl;
return;
}
Mat bin;
threshold(src, bin, 0, 255, THRESH_BINARY | THRESH_OTSU);
Mat dst1, dst2;
morphologyEx(bin, dst1, MORPH_OPEN, Mat());
morphologyEx(bin, dst2, MORPH_CLOSE, Mat());
imshow("src", src);
imshow("bin", bin);
imshow("opening", dst1);
imshow("closing", dst2);
waitKey();
destroyAllWindows();
}
C++ Code 출처 : OpenCV 4로 배우는 컴퓨터 비전과 머신 러닝 - 황선규 저

'OpenCV' 카테고리의 다른 글
ch12 findcts (0) | 2024.05.21 |
---|---|
ch11 threshold (0) | 2024.05.21 |
ch11 adaptive (0) | 2024.05.21 |
ch10 inrange (0) | 2024.05.21 |
ch10 colorOp (0) | 2024.05.21 |