利用opencv改变灰度图像中每个像素值碰到的问题....? 400 报错
为什么修改失败..?
//图像像素类型IPL_DEPTH_8U IplImage *src = cvLoadImage("haha.jpg",CV_LOAD_IMAGE_GRAYSCALE);; for (int y = 0; y < src->height; y++) { uchar *ptr = (uchar *)(src->imageData + y*src->widthStep); for (int x = 0; x < src->width; x++) { if (ptr[x] >= 200) { ptr[x] = 255; } if (ptr[x] <= 50) { ptr[x] = 0; } //此处没有输出,说明值还是被我改了 if (ptr[x] != 0 && ptr[x] != 255) cout << (int)ptr[x] << " "; } } cvSaveImage("456.jpg", src); IplImage *ddd = cvLoadImage("456.jpg", CV_LOAD_IMAGE_GRAYSCALE); for (int y = 0; y < ddd->height; y++) { uchar *ptr = (uchar *)(ddd->imageData + y*ddd->widthStep); for (int x = 0; x < ddd->width; x++) { //这边有输出,说明值没有被我改掉啊! if (ptr[x] != 0 && ptr[x] != 255) cout << (int)ptr[x] << " "; } }
我发现ps中也有“类似的问题”。当我在photoshop中新建了一张7*6像素照片的时候,给其中某些像素点设定灰度值,值为0%或100%,保存。然而,当我再次打开的时候,发现有些像素点竟然变成了1%或99%。好奇怪的问题啊..这些点基本是边缘点,即1%和99%相邻的
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。