Tag: 图像

灰度图像转换.img到.ras – 在Windows中的白色和蓝色的灰度等级?! C

我想将.img文件(512字节标题,512×512像素,每像素8位(值:0-255))转换为.ras文件。 为此,我在本文末尾得到了C代码。 我的测试图像(test.img)的输出应该是黑/白图像 – 所以只包含0或255的值。但问题是,当我在Windows中编译C代码(从底部)时,我的结果。 ras文件是白色还是亮蓝色?! 奇怪的是。 当我在Linux中编译C代码时,结果是完全黑/白?! 这怎么来的? 在两个系统中我使用了64位。 所以你可以尝试一下:1。用以下代码编译C代码:gcc -lm img2ras.c -o img2ras 2.通过控制台将.img转换为.ras:img2ras test.img test.ras 3.在gimp中观察.ras文件,XnView或PaintshopPro 你是否有任何线索如何在具有相同版本的gcc 4.8.1的不同操作系统上发生这种尴尬的结果? test.img: http : //www.file-upload.net/download-8629102/test.img.html img2ras.c /* this program accepts an input file (which comes from the image capturing board) and an output file, which must be specified on the command line. The output file […]

将tga文件转换为黑白文件时出现问题

我一直试图让这个程序将tga图像转换成黑白色。 但我不知道如何去做。 我是C的新手,并且尚未掌握语法,甚至正确使用ubuntu。 我认为我的问题是与tga文件头不能读取的东西。 因为在tga文件上尝试这个程序时得到的结果是一张没有高度的无法打开的图片。 “身高= 0”。 是否有一些很好的链接可供人阅读C? #include #include #include #include struct pixel { uint8_t r, g, b, a; }; static uint8_t *load_image(char *filename, int *sizex, int *sizey) { uint8_t *image; char buf[512]; char *bufptr; int ret; FILE *fp = fopen(filename, “r”); bufptr = fgets(buf, 512, fp); ret = fscanf(fp, “%d %d\n”, sizex, sizey); […]

使用Pure C显示PGM图像(p5)中的直方图像素值,不带任何图像处理库

这个问题对于使用纯C更好地理解图像处理是一项挑战。我已经使用C编译的GCC完成了一个读取非二进制PGM文件的简单程序。 现在,当我尝试读取二进制PGM文件时,它正成为一个问题。 可以通过使用IrvanView将JPG转换为PGM来获取该二进制PGM文件。 注意:请不要回答任何图像处理库(例如:OpenCV)。 我目前的代码是: #include #include #define WIDTH 1024 #define HEIGHT 768 #define READ_IMAGE_NAME “MY_PGM_FILE_NAME.pgm” void print_histogram_table(int *histog); main() { FILE *fp; int i,j, height= HEIGHT, width=WIDTH; char line[100]; // Color depth is 255. unsigned char pixel_value; fp = fopen(READ_IMAGE_NAME,”r”); // get the first four lines. fgets (line,100,fp); fgets (line,100,fp); fgets (line,100,fp); fgets (line,100,fp); […]

用于多个图像的内存缓冲区

我从两台摄像机在PC上接收图像。 流不是连续的,而是在事件检测时发生。 因此,在特定时间之后,我必须接收大约8-10个图像对。 由于我必须处理图像,我想首先将所有图像保存在一个大缓冲区中,然后再批量处理它们。 将图像保存在两个大缓冲区(每个摄像机一个)中也是可以接受的。 如何将这对图像保存在一个(或两个)大缓冲区中? 我在C中实现这个程序。

通过控制台将二进制数据从C传递到C#

我有两个应用程序,一个用C语言编写,另一个用C#编写,它通过控制台字符串消息进行通信。 它们都等到另一个发送字符串消息。 现在我希望在某个时刻,C应用程序通过相同的控制台I / O“通道”以二进制格式发送图像,并且C#应用程序接收它并将其用作要显示的图像。 我知道这是可能的,请参阅: C / C ++:是否可以通过控制台传递二进制数据? 。 我可以访问这两个应用程序的源代码。 我知道C应用程序代码将映像写入磁盘的位置。 C#应用程序通过以下代码获取C应用程序输出: process.OutputDataReceived += new DataReceivedEventHandler(p_OutputDataReceived); //void p_OutputDataReceived(object sender, DataReceivedEventArgs e) //e.Data. 如何编写二进制图像传输的C和C#部分? 谢谢。

使用Cimg库读取jpeg图像时出现堆栈溢出错误

当我尝试使用Cimg库读取jpg文件而其他格式bmp正在工作文件时,我收到堆栈溢出错误。 我该如何解决? #include”CImg.h” #include using namespace cimg_library; int main() { CImg src(“d:\\sidimg.jpg”); int width = src.width(); int height = src.height(); unsigned char* ptr = src.data(0,0); int count=0; while(count!= width*height) { printf(“%d”,*ptr); ptr++; count++; } }

C Win32:从HBITMAP保存.bmp图像

我正在使用framegrabber,需要从计算机内存中获取图像并将其保存在图像文件中。 在尝试了几天后,我最终得到了以下2个函数,它们创建了一个文件,Windows操作系统能够运行.bmp文件,但位图文件是黑色的(图像大小为900KB,640 * 480)。 有没有人知道为什么,图片是黑色的? 这里有两个function: LPSTR CreateBMP( HWND hAppWnd, int nImageType ) { void * pWinGBits = NULL; int i; Z_BITMAPINFO zWinGHeader; // bitmapinfo for cerating the DIB // create DC for bitmap. hDCBits = CreateCompatibleDC( ghDCMain ); switch ( nImageType ) { case bayer_filter: zWinGHeader.bmiHeader.biSize = sizeof( BITMAPINFOHEADER ); zWinGHeader.bmiHeader.biPlanes = 1; zWinGHeader.bmiHeader.biClrImportant […]

在C / C ++中寻找GD教程

我看到很多关于PHP的GD教程,尽管GD是用C语言编写的,而不是PHP语言。 你可以在C中为GD推荐任何好的教程吗?

如何将图像切片/切成碎片

所以我有一个函数接收OpenCV图像并将其转换为灰度图像。 void UseLSD(IplImage* destination) { IplImage *destinationForGS = cvCreateImage(cvSize(destination->width, destination->height),IPL_DEPTH_8U,1); cvCvtColor(destination,destinationForGS,CV_RGB2GRAY); } 现在如何将图像切割成大小为10×10像素的图像并迭代真实? (宽度和高度可能不会在10上划分,但是如果会有一些损失(例如从每个图像1 * h到9 * h + 9 * h像素的损失),对我来说就没问题了。)BTW可以输出10个中的一个* 10张图像到屏幕上。 请。

简单的C图像库?

什么是最简单的C图像库加载和保存? 我只是想要一个2D数组来测试一些算法,并且不需要内置函数。