Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.
Aufgabe 5 WS 2014
Hey wollt man versuchen die Aufgabe zu lösen könnt ja sagen was ihr dazu sagt.
float &Image::operator()(unsigned int i, unsigned int j) {
return this->data[i*height+j];
}
Image Filter::derivativeX(const Image &input) {
Image output(input.height, input.width - 2);
for(int i=0; i<height;i++) {
for(int j=1;j<width-1;j++) {
output(i,j)=0.5f*(input(i,j+1)-input(i,j-1));
}
}
return output;
}
Image Filter::laplace(const Image &input) {
Image output(input.height - 2, input.width - 2);
for(int i=1;i<height-1;i++) {
for(int j=1;j<width-1;j++) {
output(i,j)=input(i-1,j)+input(i+1,j)+input(i,j-1)+input(i,j+1)-4*input(i,j);
}
}
return output;
}
Image Filter::mean3(const Image &input) {
Image linear_y(input.height - 2, input.width - 2);
Image linear_x(input.height - 2, input.width - 2);
for(int i=1;i<height-1;i++) {
for(int j=1;j<width-1;j++) {
linear_x(i,j)=1/3 * (input(i,j)+input(i,j-1)+input(i,j+1)) ;
}
}
for(int i=1;i<height-1;i++) {
for(int j=1;j<width-1;j++) {
output(i,j)=1/3 * (input(i,j)+input(i-1,j)+input(i+1,j)) ;
}
}
return output;
}
bei der letzen methode geht es wahrscheinlich auch einfacher als die ganzen for schleifen könnt ihr ja verbessern und a) weiß ich den utnerschied von constanter rückgabe und normaler referenz ned. vll kann wer helfen