// ShadowDetection.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#include <iostream>
#include<opencv2/opencv.hpp>
using namespace cv;
using namespace std;
//形态学闭运算 先膨胀后腐蚀
Mat Closure(const Mat& img){
Mat dst;
//设置卷积核大小
int element_size = 1;
int s = element_size * 2 + 1;
//闭运算
Mat structureElement = getStructuringElement(MORPH_RECT, Size(s, s), Point(-1, -1));
dilate(img, dst, structureElement, Point(-1, -1), 1);//先膨胀
erode(dst, dst, structureElement, Point(-1, -1));//再腐蚀
return dst;
}
//基于HSV彩色空间的阴影检测///////////////////////////////////////////
Mat HSV(const Mat& img) {
int width = img.cols;
int height = img.rows;
Mat dst,img_hsv;
img_hsv.create(img.size(), img.type());
dst.create(img.size(), CV_8UC3);
//BGR转换到HSV空间
cvtColor(img, img_hsv, COLOR_BGR2HSV);//H色调 S饱和度 V明度
double h, s, v, m;
//计算指数m(-1~1)并进行阈值分割
for (int i = 0; i < height; i++)
for (int j = 0; j < width; j++) {
h = img_hsv.at<Vec3b>(i, j)[0];
s = img_hsv.at<Vec3b>(i, j)[1];
v = img_hsv.at<Vec3b>(i, j)[2];
m = (((s - v) / (h + s + v)));
if (m > 0.3)//分割阈值设为0.3
dst.at<Vec3b>(i, j) = { 0,255,255 };
else
dst.at<Vec3b>(i, j) = { 100,0,100 };
}
//执行闭运算
dst = Closure(dst);
imshow("阴影检测-HSV", dst);
imwrite("HSV.jpg", dst);
return dst;
}
//基于C1C2C3彩色空间的阴影检测////////////////////////////////////////
Mat C1C2C3(const Mat& img) {
int width = img.cols;
int height = img.rows;
Mat dst,temp;
dst.create(img.size(), CV_8UC3);
double C3;
//计算C3指数,并进行双阈值分割
for (int i = 0; i < height; i++)
for (int j = 0; j < width; j++) {
double R = img.at<Vec3b>(i, j)[2];
double G = img.at<Vec3b>(i, j)[1];
double B = img.at<Vec3b>(i, j)[0];
C3 = atan(B / MAX(R,G));
if (C3 > 0.4 && B < 34) //阈值设为C3>0.4和Blue<34
dst.at<Vec3b>(i, j) = { 0,255,255 };
else
dst.at<Vec3b>(i, j) = { 100,0,100 };
}
//执行闭运算
dst = Closure(dst);
imshow("阴影检测-C1C2C3", dst);
imwrite("C1C2C3.jpg", dst);
return dst;
}
int main()
{
Mat srcImg = imread("第三部分 阴影检测/Color.bmp", 4);//保持原通道数原深度
HSV(srcImg);
C1C2C3(srcImg);
waitKey(0);
imshow("test", srcImg);
}
onnx
- 粉丝: 1w+
- 资源: 5626
最新资源
- 悬挂式龙门洗车机sw20可编辑全套技术资料100%好用.zip
- Python培训之美眉图片下载爬虫 06 读回模特个人网站内容.flv
- 新能源动力电池端盖激光焊接机sw21可编辑全套技术资料100%好用.zip
- Python培训之美眉图片下载爬虫 07 个人网站图片地址提取方法分析.flv
- b站商业模式画布的ptt
- Python培训之美眉图片下载爬虫 08 个人网站图片地址提取.flv
- b站商业模式画布的ptt
- redhat linux7、8、9镜像源配置脚本
- 毕业设计-基于Python的Django-vue在线水果销售系统(毕业全套+源码).zip
- 油缸盖自动化加工产线方案sw15可编辑全套技术资料100%好用.zip
- Python培训之美眉图片下载爬虫 09 个人网站所有图片提取分析.flv
- 软件工程领域体系结构设计指南:涵盖体系结构风格、质量属性及评估方法
- 通用性会员消费管理系统,充值营销系统,会员积分消费系统 net源码 ASPX源码
- 永磁同步电机矢量控制matlab控制仿真模型(vcpmsm) 转速、转矩波形
- Python培训之美眉图片下载爬虫 10 个人网站图片下载.flv
- 锂枝晶相场模型 Comsol 锂枝晶生长模型,锂枝晶生长,锂离子浓度分布,电势分布 随机形核生长
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈