Opencv中防止像素数据溢出介绍
2018-02-01 23:45
169 查看
我们在通过Opencv操作像素数据的时候,很容易就会使得颜色值超出255,在Opencv中有一个函数就可以解决这一问题。
saturate_cas<>():保证数据不溢出。
比如我们想增加一张图片的亮度,那么我们需要作如下操作:
saturate_cas<>():保证数据不溢出。
比如我们想增加一张图片的亮度,那么我们需要作如下操作:
JNIEXPORT jintArray JNICALL Java_com_xy_opencv_ndk_1opencv002_MainActivity_lightImage(JNIEnv *env, jclass type, jintArray pixels_, jint w, jint h) { jint *pixels = env->GetIntArrayElements(pixels_, NULL); Mat img(h, w, CV_8UC4, pixels); uchar *ptr = img.ptr(0); // saturate_cast:这个函数保证值类型不溢出 for (int i = 0; i < w * h; ++i) { ptr[4 * i + 0] = saturate_cast<uchar>(ptr[4 * i + 0] + 50); ptr[4 * i + 1] = saturate_cast<uchar>(ptr[4 * i + 1] + 50); ptr[4 * i + 2] = saturate_cast<uchar>(ptr[4 * i + 2] + 50); } int size = w * h; jintArray result = env->NewIntArray(size); env->SetIntArrayRegion(result, 0, size, pixels); env->ReleaseIntArrayElements(pixels_, pixels, 0); return result; }
相关文章推荐
- Opencv之saturate_cast防止数据溢出
- OpenCV学习--saturate_cast防止数据溢出
- OpenCV学习--saturate_cast防止数据溢出
- OpenCV学习--saturate_cast防止数据溢出
- OpenCV学习--saturate_cast防止数据溢出
- OpenCV学习--saturate_cast防止数据溢出
- 【Opencv】saturate_cast防止数据溢出
- 【OpenCV3.0.0】各个modules的功能介绍(包含Contribute库)
- opencv结构介绍
- OpenCV之OpenCL介绍
- Android 通过软引用实现图片缓存,防止内存溢出
- C++开发人脸性别识别教程(3)——OpenCv配置和ImageWatch插件介绍
- opencv 图像的深度和通道介绍
- C++开发人脸性别识别教程(3)——OpenCv配置和ImageWatch插件介绍
- opencv学习(9)漫水填充、图像金字塔、阈值化的介绍
- 光流Optical Flow介绍与OpenCV实现
- 滤波算法介绍及OpenCV中使用
- PDO防止SQL注入详细介绍
- PHP垃圾回收机制防止内存溢出
- Android 通过软引用实现图片缓存,防止内存溢出