opencv利用HSV进行图像颜色分割

本文介绍了使用Python OpenCV库进行图像预处理,包括读取图片、应用高斯模糊滤波、转换为HSV颜色空间,并通过阈值分割来创建兴趣区域。展示了从BGR到HSV的转换和二值化操作在目标检测中的应用。
摘要由CSDN通过智能技术生成

所用图像:
在这里插入图片描述
代码:

import cv2
import matplotlib.pyplot as plt
import numpy as np

from utilsW.utils import cvShow

img = cv2.imread("D:/images/bird.jpg")
cvShow("img", img)

Gauss = cv2.GaussianBlur(img, (5, 5), 0)
cvShow("Gauss", Gauss)

hsv = cv2.cvtColor(Gauss, cv2.COLOR_BGR2HSV)
cvShow("hsv", hsv)

low = np.array([55, 0, 0])
high = np.array([118, 255, 255])
mask = cv2.inRange(hsv, low, high)
cvShow("mask", mask)

res = cv2.bitwise_and(img, img, mask=mask)
cvShow("res", res)

下面是C++代码

#include <opencv.hpp>
#include <iostream>
#include <algorithm>
#include "utils.hpp"

using namespace std;
using namespace cv;

int main()
{
	Mat src_img, hsv_img, gauss_img, mask, dst;

	src_img = cv::imread("D:/images/bird.jpg");
	cvShow("src_img", src_img);


	//3, 灰度化,高斯模糊
	cv::GaussianBlur(src_img, gauss_img, Size(5, 5), 0);
	cvShow("gauss_img", gauss_img);
	cv::cvtColor(gauss_img, hsv_img, cv::COLOR_BGR2HSV);
	cvShow("hsv", hsv_img);

	Mat low = (Mat_<uchar>(1,3) << 55, 0, 0);
	Mat high = (Mat_<uchar>(1, 3) << 118, 255, 255);
	cv::inRange(hsv_img, low, high, mask);
	cvShow("mask", mask);

	cv::bitwise_and(src_img, src_img, dst, mask);
	cvShow("dst", dst);
	return 0;
}
  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值