c语言输出图像
‘壹’ c语言简单图像输出问题
#include <stdio.h>
int main(int argc, char *argv[])
{
int i,j,k,n;
n=15;//n可改变
for(i=0;i<2*n-1;i++)
{
k=i+1-n>0?i+1-n:n-i-1;
for(j=0;j<n-1-k;j++)
putchar(' ');
if(i!=n-1)putchar('2');
for(j=0;j<2*k-1;j++)
putchar(' ');
putchar('2');
putchar(10);
}
return 0;
}
‘贰’ C语言编写输出图形
第一行0个空格
第二行1个空格
第三行2个空格
第四行3个空格,
所以空格数等于第几行数减一,即空格小于第几行数
‘叁’ 如何利用c语言实现像素图形的输出
1、可以变成灰度图也可以不变。这里假设你的图像都是IPL_DEPTH_8U类型。
2、如果变成灰度图,就是单通道图像,获取的就是每一个像素点的灰度值。
IplImage* img = cvLoadImage("test.bmp", 0);
for (int i = 0; i < img->height; i++)
{
for (int j = 0; j < img->width; j++)
{
//方法一:使用cvGet2D()函数间接访问
CvScalar s = cvGet2D(img, i, j); //其中i代表y轴(第i行),即height;j代表x轴(第j列),即width。
printf("gray value=%f\n",s.val[0]);
//方法二:使用直接访问
uchar val = ((uchar *)(img->imageData + i*img->widthStep))[j]; //i和j的意义同上
printf("gray value=%d\n",val);
}
}
3、如果不变成灰度图,就是3通道图像,获取的就是每一个像素点的BGR值,然后分别获取B值,G值和R值。
IplImage* img = cvLoadImage("test.bmp", 1);
for (int i = 0; i < img->height; i++)
{
for (int j = 0; j < img->width; j++)
{
//方法一:使用cvGet2D()函数间接访问
CvScalar s=cvGet2D(img,i,j); //其中i代表y轴(第i行),即height;j代表x轴(第j列),即width。
printf("B=%f, G=%f, R=%f\n",s.val[0],s.val[1],s.val[2]); //注意是BGR顺序
//方法二:使用直接访问
int bVal = ((uchar *)(img->imageData + i*img->widthStep))[j*img->nChannels + 0]; // B
int gVal = ((uchar *)(img->imageData + i*img->widthStep))[j*img->nChannels + 1]; // G
int rVal = ((uchar *)(img->imageData + i*img->widthStep))[j*img->nChannels + 2]; // R
printf("B=%d, G=%d, R=%d\n",bVal,gVal,rVal); //注意是BGR顺序
}
}
‘肆’ c语言中如何输出图像
如果使用Printf只能输出由数字组成的画面,只有用MFC类程序,使用
API函数
输入
‘伍’ C语言中如何输出图形
你可以采用循环的方法来做,需要输出A的位置的时候就输出A,其他地方就输出空格,就行了
#include<stdio.h>
voidmain()
{
inti,j,n;
printf("请输入要输出几行: ");
scanf("%d",&n);
for(i=0;i<=n;i++)
{
for(j=0;j<n-i;j++)//每行前的空格控制
printf("");
for(intk=0;k<=2*i-1;k++)输出字母
{
if(k==0||k==2*i-2)输出A
printf("A");
else
printf("");
}
printf(" ");//换行
}
}
‘陆’ c语言中如何输出图像
lz需要弄清楚,你要输出什么格式的图像,bmp,JPG。。。不同格式的图像的数据内部结构是不一样的,弄清楚不同格式图片的数据结构组成,直接采用相应地算法,用C语言文件输出函数(fopen,fprintf……那几个函数,具体我也忘了怎么用了)将数据点写入文件就行了。