C++ opencv 滑动条 Trackbary以及处理三通道和单通道图像

#include <opencv2\core.hpp>
#include <opencv2\highgui.hpp>
#include <opencv2\imgproc.hpp>

using namespace cv;

const int LowTh_Max = 20;
const int HighTh_Max = 100;
int g_HighTh, g_LowTh;
Mat srcImage;
Mat dstImage;

void on_Trackbar(int, void*);

int main(){

	g_HighTh = 80;
	g_LowTh = 0;
	srcImage = imread("F:\sfz1.jpg");
	if (!srcImage.data){ printf("fail!"); waitKey(0); return false; };
	namedWindow("1");
	imshow("1", srcImage);
	createTrackbar("LowTh:20", "1", &g_LowTh, LowTh_Max, on_Trackbar);
	createTrackbar("HighTh:100", "1", &g_HighTh, HighTh_Max, on_Trackbar);

	waitKey(0);
	return 0;
}

void on_Trackbar(int, void*){

	Canny(srcImage, dstImage, g_HighTh, g_LowTh);
	imshow("1", dstImage);

}

1. 定义全局变量及其变量的最大值(const);

2.namedWindow和g_XXX的初始值,createTrackbar,waitKey(0);

3.写on_Trackbar(int, void*), imshow;

 

处理三通道图像:

 

void procc(Mat &src, Mat &dst){
	for (int Ch = 0; Ch < 3; Ch++){
		for (int r = 0; r < src.rows; r++){
			for (int c = 0; c < src.cols; c++){
				//printf("%d %d %d\n", Ch, r, c);
				src.at<Vec3b>(r, c)[Ch] = g_sigma;
			}
		}
	}
	src.copyTo(dst);
}

 

处理单通道图像:

srcImage.ptr<int>[row](col)

  

 

转载于:https://www.cnblogs.com/byteHuang/p/8373159.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值