我需要编写一个函数来获取图像并返回镜像(Y坐标永不改变),而不使用PIL中的任何镜像或翻转模块.
我必须自己写.我收到错误信息:
IndexError: image index out of range
Run Code Online (Sandbox Code Playgroud)
我在这里想念的是什么?
谢谢.
from os.path import exists
import tkMessageBox, tkFileDialog
from PIL import Image, ImageTk, ImageFilter
def flip(im):
'''Flips a picutre horizontally, and returns a new image that is a mirror view of the original'''
org=Image.open(im)
new=Image.new("RGB",org.size)
for x in range(org.size[0]):
a=org.size[0]
for y in range(org.size[1]):
pixel=org.getpixel((x,y))
new.putpixel((a,y),pixel)
a-=1
new.save("new.bmp","bmp")
Run Code Online (Sandbox Code Playgroud) 例如,假设我有2个具有相同大小的图像,并且这2个图像具有相似的像素值
img1 = [1 5 1 5,7 2 7 2, 3 9 3 9,8 4 8 4];
img2 = [5 1 5 1,2 7 2 7, 9 3 9 3,4 8 4 8];
Run Code Online (Sandbox Code Playgroud)
我需要选择只从两个的最大值img1和img2.我想要新的形象
img3 = [5 5 5 5,7 7 7 7, 9 9 9 9,8 8 8 8];
Run Code Online (Sandbox Code Playgroud)
总之,我想所有的像素比较img1,并img2创造新的img3包含从最大值img1和img2.
我怎样才能做到这一点?
我正在将Python OpenCV代码转换为Emgu.在Python中,函数findContours可以返回hierarchy
hierarchy - 可选输出向量,包含有关图像拓扑的信息.它具有与轮廓数量一样多的元素.对于每个第i个轮廓轮廓[i],元素层次[i] [0],层次[i] [1],层次[i] [2]和层次[i] [3]被设置为0-基于相同等级的下一轮和前轮廓的轮廓,第一轮廓和父轮廓的基础索引.如果轮廓i没有下一个,前一个,父级或嵌套轮廓,则层次结构[i]的相应元素将为负数.
不幸的是在Emgu我不能不为findContours函数返回这样的数组.这有什么相同的吗?
这是我的代码,非常简单,我无法相信它不起作用.
pckint = imread('pckint.jpg');
F = fft2(pckint);
Fcon = conj(F);
S = F*Fcon;
Run Code Online (Sandbox Code Playgroud)
现在,根据分配方向和我对主题的理解,我应该在我的功率谱'S'中获得真正的价值.但是,我正在获得复杂的价值观.
对不起,对于Matlab来说,我是一个完整的菜鸟,但我已经尝试过搜索和理解我用过的所有命令,但无济于事.请帮忙!
我可以为我的算法创建的最大线程是多少?使用MultiThreading时是否需要考虑系统配置?
我的硬件:Intel(R)Core(TM)2 Duo CPU E8400 @ 3.00 GHz 2.00 GHz
安装的RAM:4.00 GB
我可以在项目中创建/使用多少个最大线程?
我不知道如何处理这个: - /
我只需要在图像上添加贴纸.应用程序将在选择特定贴纸时贴上像表情符号,心(图像)的贴纸,它将被添加到主图像中,用户可以使用贴纸进行操作,如旋转,缩放等,用户可以选择多个贴纸并可以进行旋转缩放等添加贴纸,
请指导如何实现这一点,我能够用单个贴纸执行图像maniuplation我没有如何执行多个贴纸选择,用户可以再次回到任何贴纸并执行操作.
我不理解opencv中hog.cpp中伽马校正的代码,我在这里找到了一些与opencv hog.cpp中的代码不匹配的链接
Mat_<float> _lut(1, 256);
const float* lut = &_lut(0,0);
if( gammaCorrection )
for( i = 0; i < 256; i++ )
_lut(0,i) = std::sqrt((float)i);
else
for( i = 0; i < 256; i++ )
_lut(0,i) = (float)i;
Run Code Online (Sandbox Code Playgroud)
我从代码中理解的是,它创建了1x256的二维数组,如果伽马校正为真,它将计算数据的平方根.我试图调试遍历与此代码相关的所有文件,但dint理解.任何人都可以简单地告诉我们这里发生了什么.
请
提前帮助,谢谢.
我试图理解为什么原始图像不符合此代码.得到的图像receive颜色为黄色,而不是与图像相似Img_new.
Img=imread(‘lena_color.tif’);
Img_new=rgb2gray(img);
Send=zeroes(size(Img_new);
Receive= zeroes(size(Img_new);
Mask= rand(size(Img_new);
for i=1 :256
for j=1:256
Send(i,j)=xor( Img_new(i,j),mask(i,j));
End
End
image(send);
imshow(send);
for i=1 :256
for j=1:256
receive(i,j)=xor( send(i,j),mask(i,j));
End
End
image(receive);
imshow(receive);
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
我有一个名为digi pics的项目,应该用java来完成,但我怀疑"数字图像的分配"和"数字图像处理"是否相同.
如果没有,请告诉我数字图像的含义是什么意思,如何进一步推进项目.
我正在研究一个加载位图图像并将其显示在窗口上的示例.我想确定图像是黑白图像还是彩色图像.
请让我知道如何识别它.我想要win32/MFC样本.
问候
image-processing ×10
matlab ×3
opencv ×2
c++ ×1
emgucv ×1
ios ×1
iphone ×1
java ×1
mfc ×1
objective-c ×1
python ×1
visual-c++ ×1
winapi ×1
windows ×1