码迷,mamicode.com
首页 > 其他好文 > 详细

caffe RandomBrightness

时间:2018-06-11 00:29:49      阅读:246      评论:0      收藏:0      [点我收藏+]

标签:讲解   cal   span   detail   像素   next   gen   open   www.   

 

void RandomBrightness(const cv::Mat& in_img, cv::Mat* out_img,
    const float brightness_prob, const float brightness_delta) {
  float prob;
  caffe_rng_uniform(1, 0.f, 1.f, &prob);
  if (prob < brightness_prob) {
    CHECK_GE(brightness_delta, 0) << "brightness_delta must be non-negative.";
    float delta;
    caffe_rng_uniform(1, -brightness_delta, brightness_delta, &delta);
    AdjustBrightness(in_img, delta, out_img);
  } else {
    *out_img = in_img;
  }
}

 

 

 

 

 

void AdjustBrightness(const cv::Mat& in_img, const float delta,
                      cv::Mat* out_img) {
  if (fabs(delta) > 0) {
    in_img.convertTo(*out_img, -1, 1, delta);
  } else {
    *out_img = in_img;
  }
}

opencv的convertTo的讲解:https://blog.csdn.net/qq_22764813/article/details/52135686

             https://blog.csdn.net/qq_15505637/article/details/53887274

type是是否改变深度的,即uint8、uint16、float等,-1就是保持不变

scale是比例因子,即每个像素值需要乘的值

shift是在每个像素上加上的值

opencv调整亮度:https://blog.csdn.net/hb707934728/article/details/74914104

g(i,j)=a*f(i,j)+b  a是调整对比度,b是调整亮度,实际上就是scale调整对比度,shift调整亮度,这里就是对比度不变,调整亮度

 

 

 

 

caffe_rng_uniform:生成n个在a、b之间均匀分布的值

uniform distribution:均匀分布

http://www.voidcn.com/article/p-hqhoassv-qh.html

void caffe_rng_uniform(const int n, const Dtype a, const Dtype b, Dtype* r) {
  CHECK_GE(n, 0);
  CHECK(r);
  CHECK_LE(a, b);
  boost::uniform_real<Dtype> random_distribution(a, caffe_nextafter<Dtype>(b));
  boost::variate_generator<caffe::rng_t*, boost::uniform_real<Dtype> >
      variate_generator(caffe_rng(), random_distribution);
  for (int i = 0; i < n; ++i) {
    r[i] = variate_generator();
  }
}

 

caffe RandomBrightness

标签:讲解   cal   span   detail   像素   next   gen   open   www.   

原文地址:https://www.cnblogs.com/ymjyqsx/p/9164813.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!