본문 바로가기

OpenCV

ch10 inrange

#python 

import cv2
import numpy as np

lower_hue, upper_hue = 40, 80
src = cv2.imread("D:\\projects\\SampleCode\\006939-master\\ch10\\inrange\\candies.png", cv2.IMREAD_COLOR)

def on_hue_changed(_=None):
    global lower_hue, upper_hue
    lowerb = np.array([lower_hue, 100, 0])
    upperb = np.array([upper_hue, 255, 255])
    mask = cv2.inRange(src_hsv, lowerb, upperb)
    cv2.imshow("mask", mask)

if src is None:
    print("Image load failed!")
else:
    src_hsv = cv2.cvtColor(src, cv2.COLOR_BGR2HSV)
    cv2.imshow("src", src)
    cv2.namedWindow("mask")
    cv2.createTrackbar("Lower Hue", "mask", lower_hue, 179, on_hue_changed)
    cv2.createTrackbar("Upper Hue", "mask", upper_hue, 179, on_hue_changed)
    on_hue_changed()
    cv2.waitKey(0)

// C++

#include "opencv2/opencv.hpp"
#include <iostream>

using namespace cv;
using namespace std;

int lower_hue = 40, upper_hue = 80;
Mat src, src_hsv, mask;

void on_hue_changed(int, void*);

int main(int argc, char* argv[])
{
	src = imread("candies.png", IMREAD_COLOR);

	if (src.empty()) {
		cerr << "Image load failed!" << endl;
		return -1;
	}

	cvtColor(src, src_hsv, COLOR_BGR2HSV);

	imshow("src", src);

	namedWindow("mask");
	createTrackbar("Lower Hue", "mask", &lower_hue, 179, on_hue_changed);
	createTrackbar("Upper Hue", "mask", &upper_hue, 179, on_hue_changed);
	on_hue_changed(0, 0);

	waitKey(0);
	return 0;
}

void on_hue_changed(int, void*)
{
	Scalar lowerb(lower_hue, 100, 0);
	Scalar upperb(upper_hue, 255, 255);
	inRange(src_hsv, lowerb, upperb, mask);

	imshow("mask", mask);
}

C++ Code 출처 : OpenCV 4로 배우는 컴퓨터 비전과 머신 러닝 - 황선규 저


'OpenCV' 카테고리의 다른 글

ch11 morphology  (0) 2024.05.21
ch11 adaptive  (0) 2024.05.21
ch10 colorOp  (0) 2024.05.21
ch10 coloreq  (0) 2024.05.21
ch10 backproj  (0) 2024.05.21