在线
客服

发布
需求

天盟
APP

天盟APP下载

关注
微信

微信扫一扫访问
顶部

[软件设计] 用C++语言写工具

ooape***发布 已通过手机认证
任务编号:580919 投标任务预算5000-10000元 投标任务 : 服务商先提交报价及方案,中标后再进行任务。

用C++语言写工具

距截止: 任务已圆满完成 雇主已托管赏金:0
雇主发布需求 服务商投标 雇主选标 托管赏金 验收完成

任务大厅共需1个中标方案 | 方案完成并通过雇主审核后将获得 由双方商议并由雇主托管 的金额

投诉举报 联系Ta 我来承接 已有1 个投标 | 已中标0| 还需要1 个投标

任务需求:
您需要应用讲座/研讨会中讨论的技术,使用Intel的线程构建块(TBB)库实现大量的图像处理操作。具体工作内容如下:


a)使用地图模式,实现TBB内核转换图像,其中每个像素存储红色、绿色和蓝色组件(RGB颜色空间)到一个图像,其中每个像素存储色度(x, y)和亮度(y)。



注意:您可以使用FreeImage来加载不同的图像格式来测试,这是我们在课堂上看到的。加载的图像存储在一个二维数组中,其中每个像素由RGB值(存储为3个浮点数)组成。转换到xyY颜色空间需要两个步骤:




•将RGB值转换为中间XYZ值:




X = 0.4124 * R + 0.3576 * G + 0.1805 * B


Y = 0.2126 * R + 0.7152 * G + 0.0722 * B


Z = 0.0193 * R + 0.1192 * G + 0.9505 * B



•计算色度和亮度xyY值如下:



x = x / (x + Y + Z)


y = y / (X + y + Z)


Y = Y




这个阶段的输出将是一个新的图像,其中每个像素存储在xyY颜色空间,而不是RGB颜色空间。



b)编写第二个内核,从步骤1中获开输出图像,并将每个像素的亮度设置为其原始值的30%。



c)编写第三个内核,将在步骤2中修改的xyY图像转换回RGB颜色空间,并将生成的图像保存到磁盘。这是在2个步骤…




•将xyY值转换回中间的XYZ值:



X = X * (Y / Y)


Y = Y


Z = (1- x- y) * (y / y)






•将中间的XYZ值转换为RGB值:

R = 3.2405 * X + -1.5371 * Y + -0.4985 * Z


G = -0.9693 * X + 1.8760 * Y + 0.0416 * Z


B = 0.0556 * X + -0.2040 * Y + 1.0572 * Z



d)实现步骤1、2和3,但要在一个for循环中连续运行。



e)制定计划,列出一系列测试每个内核的实验(rgbto - xyy转换、亮度变化和xyto - rgb转换),针对每个测试用例查看不同大小的图像。将每个实验运行多次——因为你不能保证在一个先发制人的多任务环境中运行一个测试是公平的——并将你的测试计划和结果记录在一个字处理报告中。作为报告的一部分,讨论诸如TBB之类的并发/并行编程库如何处理诸如此类的数据并行问题。

使用道具 举报

全部参与1

使用道具 举报

发新帖
国内首家创新型IT技术需求众包服务平台,软件需求就上天盟网! 立即登录 立即注册