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


    #include <opencv2core.hpp>
    #include <opencv2highgui.hpp>
    #include <opencv2imgproc.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
    ", Ch, r, c);
    				src.at<Vec3b>(r, c)[Ch] = g_sigma;
    			}
    		}
    	}
    	src.copyTo(dst);
    }
    

    处理单通道图像:

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

      

  • 相关阅读:
    Java(二)
    JS === 关于getElementsByClassName()
    JS === 简易放大镜
    JS === 拖拽盒子
    JS === 实现多个光标跟随事件
    JS === 实现回到顶部
    JS === 实现通过点击td 跳转相应的图片
    final、static关键字
    java面向对象——构造方法
    java面向对象——多态
  • 原文地址:https://www.cnblogs.com/byteHuang/p/8373159.html
Copyright © 2020-2023  润新知