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……那幾個函數,具體我也忘了怎麼用了)將數據點寫入文件就行了。