|
分類:[C/C++]
画像割符技術を用いて、VisualC++でプログラミングをやっています。 "HIT"の文字画像を2つに分散し、それぞれランダムドット処理をし、2枚を重ね合わせた時、"HIT"の文字画像を復元するプログラムを作成中です。
2枚の分散画像の行列と秘密画像の行列は書けましたが、
(1)その2枚の画像を重ね合わせるプログラムコードと
(2)2つの分散画像をランダムドット画像にするにはどんなプログラムコードを使えばいいか分かりません。
下がプログラムコードです。 #include<windows.h> #include<tchar.h> #include<stdio.h> #include<stdlib.h>
#define WINDOW_WIDTH (200)//幅200 #define WINDOW_HEIGHT (150)//高さ150 #define WINDOW_X 0 #define WINDOW_Y 0
int S,S1,S2;//S=復元画像,S1=シェア画像1、S2=シェア画像2
int x,y,w,h;//h=高さ w=幅 x=x座標 y=y座標
int S1[2][4]={//シェア画像1の配列
1,0,1,0, 1,0,1,0 };
int S2[2][4]={//シェア画像2の配列
1,0,1,0, 0,1,0,1 };
char S[12][7]={//復元画像の配列
0,0,0,0,0,0,0,0,0,0,0,0, 1,0,1,0,1,1,1,0,1,1,1,0, 1,0,1,0,0,1,0,0,0,1,0,0, 1,1,1,0,0,1,0,0,0,1,0,0, 1,0,1,0,0,1,0,0,0,1,0,0, 1,0,1,0,1,1,1,0,0,1,0,0, 0,0,0,0,0,0,0,0,0,0,0,0 };
for(int x=0;x<12;x++){
for(int y=0;y<7;y++){
if(image[x][y]){
[x][y]=0; //(x,y)が黒
}else{
[y][x];=255;//(x,y)が白 } } }
x=200*rand(); y=150*rand(); //rand関数
途中までしかやってないので、コードが全然足りないと思います。たくさんのアドバイスお願いします。
|