广色域图片Android,Android Q将支持广色域照片

原标题:Android Q将支持广色域照片

IT之家6月16日消息 据谷歌开发者发文称,从Android Q开始,广色域图片即将亮相Android。

671a3c54cad53175e29f8c66736b6f93.png

808eecafee904301b92d16a883ef299a.png

▲上图: Display P3,下图: sRGB

文章称,Android现已迎来新一轮的图像革新,由于sRGB的每个色彩通道只有8个比特,因此标准sRGB色域无法充分体现屏幕与摄像头最新技术的优势所在。Android一直在努力实现对广色域图像的端到端支持,例如,呈现数据更多、色域更宽的画面。这意味着,用户最终能够捕捉到实景的丰富色彩,在手机上观赏并与朋友分享广色域图片。

8caa9792c6a377a18aeea14eb085b7c1.png

以上两组图片为同一张照片的Display P3和sRGB版本。如果您正在使用已校准且支持广色域的显示屏上阅读本文,您会发现两者存在明显差别。

文章称,为什么要支持广色域呢?实际上,移动设备的屏幕与摄像头传感器每年都在更新换代,越来越多的新机型即将搭载校准显示面板,其中部分还会提供广色域支持。现代摄像头感应器能够捕捉到sRGB范围以外的颜色,然后生成广色域图片。屏幕与传感器的双重升级将带给用户端到端的摄影体验,让他们用更鲜明的色彩留影真实世界。

从技术层面来说,这意味着应用需要处理的图片与之前不同了。图片内嵌的ICC配置文件将不再采用sRGB色彩空间,而是转用其它色域更加丰富的格式,如Display P3和Adobe RGB。对于消费者而言,广色域能让照片看上去更加真实。

Android Q肯定会支持Display P3和Adobe RGB,同时其他格式也是有望支持的。当然,开发人员必须更新他们的应用程序。返回搜狐,查看更多

责任编辑:

对于在 Android 上使用 OpenCV 进行 RGB 色域的颜色分割,你可以按照以下步骤进行操作: 1. 首先,确保你已经在 Android 项目中集成了 OpenCV 库。你可以在 OpenCV 官方网站上找到相关的文档和指南。 2. 在你的代码中,导入必要的 OpenCV 类和方法: ```java import org.opencv.android.CameraBridgeViewBase; import org.opencv.android.JavaCameraView; import org.opencv.android.Utils; import org.opencv.core.Mat; import org.opencv.core.MatOfRect; import org.opencv.core.Rect; import org.opencv.core.Scalar; import org.opencv.core.Size; import org.opencv.imgproc.Imgproc; ``` 3. 在你的 Activity 中,实现 `CameraBridgeViewBase.CvCameraViewListener2` 接口,并初始化相机视图: ```java public class MainActivity extends AppCompatActivity implements CameraBridgeViewBase.CvCameraViewListener2 { private JavaCameraView javaCameraView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); javaCameraView = (JavaCameraView) findViewById(R.id.java_camera_view); javaCameraView.setVisibility(SurfaceView.VISIBLE); javaCameraView.setCvCameraViewListener(this); } } ``` 4. 实现相机视图的回调方法,在 `onCameraFrame()` 方法中进行图像处理: ```java @Override public Mat onCameraFrame(CameraBridgeViewBase.CvCameraViewFrame inputFrame) { Mat rgba = inputFrame.rgba(); // 将图像转换成 HSV 色域 Mat hsv = new Mat(); Imgproc.cvtColor(rgba, hsv, Imgproc.COLOR_RGB2HSV); // 颜色阈值,通过调整下面两个 Scalar 的值来选择特定颜色范围 Scalar lower = new Scalar(0, 100, 100); Scalar upper = new Scalar(10, 255, 255); // 对图像进行颜色分割 Mat mask = new Mat(); Core.inRange(hsv, lower, upper, mask); // 对分割结果进行处理,例如形态学操作或轮廓检测等 return rgba; } ``` 在上述代码中,我们首先将图像转换成 HSV 色域,然后通过调整 `lower` 和 `upper` 的值来选择特定的颜色范围,再使用 `Core.inRange()` 方法对图像进行颜色分割。你还可以根据需求对分割结果进行进一步的处理,例如应用形态学操作或进行轮廓检测等。 请注意,这只是一个简单的示例,你可能需要根据你的具体需求进行更多的图像处理和调整。同时,确保你已经在 AndroidManifest.xml 文件中添加了相机权限。 希望这能帮到你!如果有任何问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值