大家好,今天小编关注到一个比较有意思的话题,就是关于c语言 灰度的问题,于是小编就整理了4个相关介绍c语言 灰度的解答,让我们一起看看吧。
求个大神帮写一个C语言RGB565转换为灰度图像的算法?
最多只能给你写个rgb565像素转灰度像素的。
不知道你图像是什么格式,如何保存,以及各种其他什么什么信息。
#define rgb565togray(x) \
(unsigned char) ( \
((val) >> 11) * 0.3 + \
(((val) >> 5) & 0x3f) * 0.59 + \
((val) & 0x1f) * 0.11 \
)
C语言最难学的是什么?
C语言的难点就是指针和内存操作,在其他高级语言中,这些内容都被优化掉了。正因为C语言有指针,对内存的操作十分灵活,所以才广泛应用于底层驱动和协议栈相关的领域。 但是在应用级别,C语言就力不从心了,因为其他高级语言如Java和C#就是针对高级应用而开发的,它的目标就是模块化,使用简单。所以,你就会发现使用C#等开发窗口程序,就是拖拖拽拽的过程。 所以,并不能说C语言是最有用的,只是更适合某个领域而已。 之所以认为C语言难,大多都是没把指针和内存搞清楚的缘故,而且有的教材也没有教明白,甚至都有错误。之前我看过那本出版量最多的广泛被推荐的教材,书中居然就有指针就是地址的这种错误概念。
一个灰度像素由几个字节构成?
一个像素多少个字节,以bmp图片为例,8位bmp图片即一个像素刚好是一个字节。24位bmp图片,一个像素是三个字节存放的R,G,B 每个通道刚好是一个字节。搞清楚像素,字节,和位的关系。 字节(Byte /bait/ n. [C])是计算机信息技术用于计量存储容量的一种计量单位,通常情况下一字节等于八位,也表示一些计算机编程语言中的数据类型和语言字符。 说在一幅可见的图像中的像素(如打印出来的一页)或者用电子信号表示的像素,或者用数码表示的像素,或者显示器上的像素,或者数码相机中的像素。
取决于需要存储一个像素的多少信息,以及是否***用了压缩技术。 如果是非黑即白的二值图像,不压缩的情况下一个像素只需要1个bit。
如果是256种状态的灰度图像,不压缩的情况下一个像素需要8bit(1字节,256种状态)。
如果用256种状态标识屏幕上某种颜色的灰度,而屏幕***用三基色红绿蓝(RGB),不压缩的情况下一个像素需要占用24bit(3字节),这个就是常说的24位真彩色。 还有各种其他的存储方式,例如15bit、16bit、32bit 如果考虑到压缩,情况就更复杂了,是有损压缩还是无损压缩,具体***用哪种压缩算法,压缩参数参数设置等等都会影响到一个像素占用的存储空间。
谁有简单一点制作灰度图的方法?
有好几个方法,简单说下供你发散下思维。
通道选取的快捷键方面,我是cs6,没有在快捷键设置里选中use legacy channel shortcuts,所以和老版本的有所不同,请注意
选中(一个)灰度图层的情况下
ctrl+alt+2(把亮度通道载入为选区,俗称载入高光区域)
delete or backspace(删除选区内容)
如果需要图层原始数据
,可以使用这之后的方法选中(一个)灰度图层的情况下
ctrl+alt+2(把亮度通道载入为选区,俗称载入高光区域)
然后点图层面板的添加蒙板按钮(直接从选区创建位图蒙板)
再选中这个蒙板,ctrl+I(反色)
选中(一个)灰度图层的情况下
按住ctrl点那个灰度图层
ctrl+c(复制)
然后点图层面板的添加蒙板按钮
按住alt点蒙板(进入直接查看编辑蒙板[_a***_])
ctrl+v(黏贴图像到蒙板里,彩色图像也能直接黏贴,自动转灰度)
ctrl+I(反色)
最后记得图层面板里随便别图层or空处点一下退出蒙板查看模式
个人认为最好的方法是用图层样式里的blend if来弄
,一是很方便,二是非破坏性编辑,三是图层样式是可以批量粘贴等处理的,某些方面比用动作还方便先打开灰度图层的图层样式对话框(双击图层右侧空白处or右击图层后选第一个blending options)一般blend if的默认选项就是gray了,不用改,在this layer的渐变条的右半侧,按住alt随便点下(比如我点在了下图红框里),然后白色箭头的左半边会被移动到你点的位置然后松开alt,直接拖动红框里的半个箭头到最左端点击右上的ok到此,以上就是小编对于c语言 灰度的问题就介绍到这了,希望介绍关于c语言 灰度的4点解答对大家有用。